Existe algum perigo em excluir todos os transitórios?


9

Eu tenho um site grande para um cliente e, como é uma instalação wordpress realmente personalizada com muitas extensões de funcionalidade, não posso usar os plug-ins de cache.

Para melhorar o desempenho, construí grande parte do site usando transientes (por exemplo, a navegação, o google maps com todos os marcadores etc.) e deixo o conteúdo dinâmico dinâmico.

O problema aqui é que, se eu mudar alguma coisa, tenho que excluir manualmente o transitório específico para ver o resultado atual. O site mostra menus e googlemaps diferentes quando inseridos em um canal diferente, então eu tenho dez transientes para cada área.

Você criaria uma função em que eu as excluísse de uma só vez (com uma lista dos nomes dos transitórios) ou não há problema em excluir todos os transitórios no site?

Não é realmente tão urgente, mas para o desenvolvimento futuro eu gostaria de saber se você teve algum problema com coisas assim e como você gerencia todos os seus transitórios.

Saúde, fischi


Respostas:


6

Para o desenvolvimento, aconselho a trabalhar sempre com o WP_DEBUGconjunto para truee faça o seguinte:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

Em geral - deve ser bom excluir transitórios, pois eles nunca devem ser assumidos como estando no banco de dados.


thanks @stephen, usei esta solução na fase de desenvolvimento, mas a resolvi na fase de refatoração antes de começar a vida. não deveria ter feito isso;) mas, em sua experiência, você já teve algum problema ao excluir transitórios manualmente?
fischi

:) obrigado pela informação sobre a exclusão de transientes. Eu pensei algo assim, mas não tinha certeza.
fischi

1
Não, nunca tive problemas para excluir transitórios manualmente - exceto por me cansar dele e usar essa abordagem :).
Stephen Harris

1

Você deve conectar as várias ações que são executadas quando as coisas são atualizadas para limpar e atualizar os transientes. Por exemplo, quando o menu de navegação é atualizado, a wp_update_nav_menuação é acionada, vincule uma função a essa para atualizar o transitório do menu de navegação.


obrigado @Milo, esta é uma boa ideia, mas não utilizável para mim, pois os transientes não afetam apenas o menu. há muito conteúdo (pontos de interesse em um mapa) adicionado o tempo todo, e o site está bastante ocupado - por isso, construo, por exemplo, a lista dos PIs mais recentes apenas uma vez por hora, e não apenas nowp_update_nav_menu
fischi

esse foi apenas um exemplo, atualize cada transiente em qualquer ação a que ele esteja vinculado
Milo

Sim, você está bem aqui. nem todos os meus transitórios estão vinculados a uma ação, no entanto. alguns deles são usados ​​diretamente nos arquivos de modelo (quando crio listas grandes) e contêm o html real, cada um com duração de uma hora. para os transeuntes que estão definidas para uma vida longa, como o que você mencionou, eu uso o método :)
fischi

1

Não seria melhor fazer seu desenvolvimento em um ambiente de desenvolvimento, para que a necessidade de ver suas alterações à medida que elas sejam feitas não afete o site público?

Usando essa abordagem, você pode implantar / promover a produção e liberar os transientes em um tempo de tráfego baixo, com impacto mínimo no desempenho do site e na experiência do usuário.


sim, seria melhor, é claro - mas iniciei o projeto algumas semanas depois de iniciar meu negócio e aprendi muito desde então. estou construindo minha infraestrutura completa - e estou planejando desenvolver temas e plugins personalizados no meu servidor e, assim que eles terminarem, implante uma atualização nos sites com a função de atualização do wordpress. esse não foi o melhor dos métodos que escolhi lá, admito.
fischi

Eu acho que todos nós temos been there and done thatuma vez ou outra.
21312 Steve
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.