在缓存管理下的Magento管理员中,当缓存显示为无效时,它意味着什么?Magento如何知道缓存失效?特别是,我想知道HTML Block缓存.什么条件会导致此缓存显示为无效?
Mag*_*Guy 17
在Magento中,无论何时对产品,静态块等进行更改,它都会识别出数据库中的数据不再与缓存中的数据相同.不幸的是,Magento没有意识到缓存数据有什么不同,只是有些不同.
您需要进入系统>缓存管理并刷新无效的缓存类型.
编辑:
创建可用于设置cron作业以刷新缓存的模块(或使用现有模块).创建一个文件:{namespace}/{modulename} /Model/Observer.php
在该文件中:
<?php
class <namespace>_<modulename>_Model_Observer {
public function refreshCache() {
try {
$allTypes = Mage::app()->useCache();
foreach($allTypes as $type => $blah) {
Mage::app()->getCacheInstance()->cleanType($type);
}
} catch (Exception $e) {
// do something
error_log($e->getMessage());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在你的模块的etc/config.xml中:
<config>
...
<crontab>
<jobs>
<{modulename}_refresh_cache>
<schedule><cron_expr>* * * * *</cron_expr></schedule>
<run><model>{modulename}/observer::refreshCache</model></run>
</{modulename}_refresh_cache>
</jobs>
</crontab>
...
</config>
Run Code Online (Sandbox Code Playgroud)
现在,只要在服务器上正确配置了cron,缓存就会自动更新,就像cron运行一样.