Problema com cache persistente

Em primeiro lugar, dei o nome Cache persistente por estar percebendo esse comportamento estranho em plugins wordpress para cache. De todos os plugins, o que está me deixando mais intrigado é o Nginx Helper. Explico: hospedo o site de um cliente, o www.acontecero.com.br e nele instalei o plugin. Eu esperava que qualquer cache fosse instalado e trabalhasse com inteligência suficiente para diferenciar conteúdo estático de conteúdo dinâmico.
Estranhamente o Nginx helper impede até que código dinâmico como o abaixo não funcione como deveria.

Porto Velho - RO, <?php

$fuso = 4; // valor de hora para mais ou menos de acordo com o fator abaixo
$fator = “-”; // fator que aumenta ou diminui a hora do fuso acima
$diasemana[0] = “domingo”;
$diasemana[1] = “segunda-feira”;
$diasemana[2] = “terça-feira”;
$diasemana[3] = “quarta-feira”;
$diasemana[4] = “quinta-feira”;
$diasemana[5] = “sexta-feira”;
$diasemana[6] = “sábado”;
$mesnome[1] = “janeiro”;
$mesnome[2] = “fevereiro”;
$mesnome[3] = “março”;
$mesnome[4] = “abril”;
$mesnome[5] = “maio”;
$mesnome[6] = “junho”;
$mesnome[7] = “julho”;
$mesnome[8] = “agosto”;
$mesnome[9] = “setembro”;
$mesnome[10] = “outubro”;
$mesnome[11] = “novembro”;
$mesnome[12] = “dezembro”;
$timeadjust = ($fuso * 60 * 60);
if ($fator == “+”){
$ano = date(“Y”,time() + $timeadjust);
$dia = date(“d”,time() + $timeadjust);
$diasem = date(“w”,time() + $timeadjust);
$hora = date(“G:i”,time() + $timeadjust);
$mes = date (“n”,time() + $timeadjust);
}
if ($fator == “-”){
$ano = date(“Y”,time() - $timeadjust);
$dia = date(“d”,time() - $timeadjust);
$diasem = date(“w”,time() - $timeadjust);
$hora = date(“G:i”,time() - $timeadjust);
$mes = date (“n”,time() - $timeadjust);
}
echo “$diasemana[$diasem], $dia de $mesnome[$mes] de $ano”;
?>, <?php
date_default_timezone_set(‘America/Porto_Velho’);
echo date(’\à\s H:i’);
?>

<div style="letter-spacing: 4px;"[email protected]

Note que esse código deveria executar a hora e mudar a cada minuto. Hoje a noite, porém, notei que ao entrar no site, vi que exibia ainda 10 horas da manhã. Notei que as matérias (postagens) estavam atualizadas, mas o site só exibia a hora em que foi postada a última matéria.

Por alguma razão, de modo muito imbecil, o cache entendeu que era pra salvar 10 horas e repetir isso ao longo do dia, mudando apenas após alguém postar nova matéria. Estranho mesmo, já que o objetivo do código é atualizar a hora minuto a minuto.

À noite, loguei no site, postei uma notícia e imediatamente a hora foi atualizada. Ocorre que eu não vou ficar 24 horas atualizando o site. O plugin faria bem o seu trabalho se apenas cacheasse o que já fosse servido antes, mas atualizando os novos conteúdos dinâmicos. Um código php, que exibe hora e minutos, não deveria jamais ser cacheado.

O Nginx Helper apenas limpa o cache quando você realiza as ações que você configura nele como atualizar uma pagina, aprovar ou apagar comentários entre outros.
Se precisa que um script não fique em cache você precisa excluir ele do cache manualmente.
Não conheço esse script que está executando. Mas aconselharia ver com o desenvolvedor como excluir ele do cache.

1 curtida

Sinceramente acredito que você pode esperar esse mesmo comportamento de qualquer plugin ou sistema de cache.
Eles vão fazer cache de tudo que é executado dentro do servidor com exceção do que for removido manualmente.
Para serviços e plugins populares como Carinho do Woocommerce por exemplo a maioria dos sistemas de cache já vem com configurações padrão que eliminam esse tipo de recurso do cache.
Mas scripts menos conhecidos sempre serão colocados em cache.

1 curtida