Я пытаюсь кэшировать блок, который отображает меню (например, модуль из Cmssmart_megamenu).
Предыдущая версия:
<block type="megamenu/navigation" name="catalog.topnav.megamenu">
<action method="unsetData"><key>cache_lifetime</key></action>
<action method="unsetData"><key>cache_tags</key></action>
</block>
Таким образом, автор явно отключил кеш. Я удалил 2 unsetData и добавил метод _construct() в классе Cmsmart_Megamenu_Block_Navigation.
class Cmsmart_Megamenu_Block_Navigation extends Mage_Catalog_Block_Navigation
{
protected function _construct()
$this->addData(array(
'cache_lifetime' => 86400,
'cache_key' => "my_key_mega_menu",
'cache_tags' => array(Mage_Catalog_Model_Category::CACHE_TAG, Mage_Cms_Model_Block::CACHE_TAG)
));
Кажется, что это работает, я вижу файл кеша: mage --- 8ea_MY_KEY_MEGA_MENU. в var/cache. Тем не менее, он исчезает из кеша через минуту. Фактически, как только начнется следующий cron (он запланирован каждый mn)
Я использовал Aoe-template_hint, и я могу видеть зеленый блок для этого блока, то есть он кэшируется, а также срок жизни установлен правильно на 86400, так что неправильно?
что моя первая попытка, что вы думаете здесь не так? Есть ли другое правило, чем продолжительность истечения срока действия файла? Может быть, есть скрытая связь с другим блоком, который истекает раньше? кеш менее 1 млн. странно в любом случае...
Примечание. У меня такая же проблема в Windows или Linux, и с Redis или без него.
спасибо