Magento

Limpar o cache do Magento periodicamente utilizando Cron Jobs

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.

 

Resumo
Nome do Artigo
Como limpar o cache do Magento periodicamente utilizando Cron Job
Descrição
Tutorial de como limpar o cache do Magento periodicamente utilizando Cron Job, o agendador de tarefas do Linux para executar o script PHP de limpeza
Autor
Editor
Roger Mauricio Takemiya
Logo do Editor

Post Recentes

Cron do Magento 2 não roda: status missed e pending no cron_schedule

Pedido que não fatura e e-mail que não sai porque todo job fica missed: como ler a cron_schedule, conferir o…

12 horas atrás

Gerar slug de URL em PHP: acento, espaço e símbolo fora do endereço

Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.

1 dia atrás

Log de consentimento LGPD: a tabela MySQL que guarda a prova do aceite

O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…

2 dias atrás

Comando CLI Magento 2: criar a classe e registrar no di.xml

A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…

3 dias atrás

Traduzir o pt_BR.csv do Magento 2 em lote sem perder a coluna de origem

Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…

3 dias atrás

Variação não está disponível no WooCommerce: limpar transients e lookup

Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…

4 dias atrás