Como configurar um Cron Job para limpar o cache do Magento periodicamente, por exemplo a cada 30 minutos.
Você pode configurar o Cron Job tanto pelo Cpanel (painel administrativo da sua hospedagem) ou utilizando a interface de comando (SSH).
O “Cron jobs” são as tarefas agendadas nos sistemas operacionais Linux.
Utilizando o Cron jobs, podemos criar uma rotina para executar uma URL a cada “x” tempo.
Criando arquivo para limpar o cache
Primeiro vamos criar o arquivo que irá limpar o cache, na raiz da sua loja crie o arquivo PHP “flush_cache.php”.
No seu conteúdo coloque:
require 'app/Mage.php'; $app = Mage::app('default'); set_time_limit(0); Mage::app()->cleanCache();
Código acima irá limpar todo o cache da loja.
Caso você queira limpar um cache em especifico, utilize o código abaixo:
require 'app/Mage.php'; $app = Mage::app('default'); set_time_limit(0); $tags = array("BLOCK_HTML"); Mage::app()->cleanCache($tags);
No exemplo acima, estou esvaziando apenas o Cache das Tags que estão no Array.
Incremente o Array com as demais Tags, conforme sua necessidade:
- CONFIG
- LAYOUT
- BLOCK_HTML
- TRANSLATE
- COLLECTION_DATA
- EAV
- CONFIG_API
- CONFIG_API2
Configurando Cron Job
Pelo Cpanel
A opção de incluir tarefas no Cpanel, vária os nomes conforme a versão do painel ou tradução, pode ser “Trabalhos Cron” ou “Agendador de Tarefas”, etc.
Caso você não esteja localizando essa opção, entre em contato com suporte de sua hospedagem.
Utilize o seguinte comando:
wget -qO- http://SEUDOMINIO.com.br/flush_cache.php &> /dev/null
Obs: as configurações de tempo serão feitas diretamente no Cpanel, apenas o comando será incluso.
Pelo SSH (comando)
*/30 * * * * wget -qO- http://SEUDOMINIO.com.br/flush_cache.php &> /dev/null
Obviamente, utilize o domínio da sua loja.
Repare no comando o parâmetro “&> /dev/null” utilizado, com ele nenhum arquivo temporário será gerado em cada execução do script.
Validando se o script está sendo executado
Inclua no final do arquivo “flush_cache.php” o seguinte código:
$name = "log-flush-cache.txt"; $fp = fopen($name, 'x+'); $postdata = date("d-m-Y_H:i:s") . ": Ok" . PHP_EOL; $escreve = fwrite( $fp, $postdata ); fclose($fp);
Será gerado um arquivo TXT na raiz de sua hospedagem contendo a data da execução do arquivo.

