Automatically refresh Cache
If in your magento system,magento cron jobs are working properly
then
you define a cronjob
which fire on midnight and clear cache.
<crontab>
<jobs>
<clean_cache_midnight><!-- identifier -->
<schedule>
<cron_expr>0 0 * * *</cron_expr> <!-- run cronjob on midnight -->
</schedule>
<run>
<model>MyModule_Model_Group_Class_Name::functionName</model>
</run>
</clean_cache_midnight>
</jobs>
</crontab>
And class is
<?php
class [ModuleNameSpace]_[ModuleName]_Model_Mycron
{
public function functionName(){
/**
* Flush all magento cache
*/
Mage::app()->cleanCache();
}
}
Full module:
create config.xml
at app/code/community/Amit/Cleancache/etc/
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<Amit_Cleancache>
<version>1.0.0</version>
</Amit_Cleancache>
</modules>
<global>
<models>
<cleancache>
<class>Amit_Cleancache_Model</class>
</cleancache>
</models>
</global>
<crontab>
<jobs>
<clean_cache_midnight><!-- identifier -->
<schedule>
<cron_expr>0 0 * * *</cron_expr> <!-- running cronjob on midnight -->
</schedule>
<run>
<model>cleancache/Fire::fireCacheonMidnight</model>
</run>
</clean_cache_midnight>
</jobs>
</crontab>
</config>
File2: create Fire.php
at app/code/community/Amit/Cleancache/Model/
code:
<?php
class Amit_Cleancache_Model_Fire
{
public function fireCacheonMidnight(){
/**
* Flush all magento cache
*/
Mage::app()->cleanCache();
}
}
File3: module config file Amit_Cleancache.xml at app/etc/modules/
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<Amit_Cleancache>
<active>true</active>
<codePool>community</codePool>
</Amit_Cleancache>
</modules>
</config>