Eu tenho uma parte estática que está incluída em todas as páginas (navegação), mas leva muito tempo para gerar. É por isso que defini uma vida útil do cache e uma chave de cache estática.
Funciona bem, até que o FPC esteja ativado. Em seguida, o bloco ainda é gerado novamente para uma página chamada recentemente e não é exibido no cache do bloco.
Existe esta linha em Enterprise_PageCache_Model_Observer
:
Mage::app()
->getCacheInstance()
->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache
Qual é a razão para isto? Faz sentido para mim ainda armazenar em cache certos blocos, mesmo se o FPC estiver ativado - porque, caso contrário, a geração de páginas que não são totalmente veiculadas no cache fica mais lenta.
- Qual é a decisão do projeto por trás disso?
- Qual é uma boa solução para isso?
- Seria prejudicial se eu apenas removesse esta proibição de cache de bloco?
Respostas:
Este bug foi corrigido no Magento 1.14.2.0. (ref http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html em Problemas conhecidos)
fonte
if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); }
mas não consigo encontrar nada sobre o motivo por que você baniria o cache do bloco. Você pode esclarecer mais?Ser capaz de desativar o FPC para blocos dinâmicos, por exemplo, na página de checkout ou carrinho. Sobre a terceira pergunta, na minha opinião, você não deve fazer o que pode ser um processo quebrado do FPC (para ser franco, para dar a resposta certa, devemos verificar o código-fonte também).
fonte