Limpar um único URL do cache

9

Usando o sistema de cache padrão do Drupal, existe uma maneira de limpar o cache de um nó ou URL sem limpar o cache inteiro (o que torna o site mais lento)?

JM01
fonte

Respostas:

6

As ações de cache do módulo fornecem controle muito refinado sobre a limpeza de cache.

Infelizmente, se ele resolverá o seu problema exato depende de como esse URL específico é criado. Caso não faça exatamente o que você deseja, sua base de código ainda seria um excelente começo para criar mais exatamente o que você precisa.

Letharion
fonte
6

Sim, você pode fazê-lo programaticamente também.

Neste exemplo, limpamos o cache da primeira página:

$url = url('<front>',  array('absolute' => TRUE));

cache_clear_all($url, 'cache_page');

O Drupal armazena os caminhos como CID na tabela e, no exemplo acima, estamos fornecendo o URL da primeira página como CID como um primeiro argumento na função e, se você definir o CID, é obrigatório definir o segundo argumento $ bin na função, que é como de qual tabela você deseja excluir o cache. Como temos que excluir uma única página, também está presente em cache_page que contém cache para as páginas.

Sahil Gupta
fonte
3

Existe um módulo para isso: Liberar cache da página . Aqui está uma citação sobre ele (na página do projeto do módulo):

Aliviando a dor quando você precisa liberar ... O cache do Drupal.

Limpar o cache do Drupal em um site grande pode parecer que você está esperando a decolagem na pista do JFK. O atraso vem do fato de que, quando você limpa o cache do Drupal, ele limpa tudo. Na maioria das vezes, você apenas deseja liberar o cache para um objeto específico em uma página.

O módulo 'Liberar cache da página' resolve esse problema liberando apenas os objetos em cache para uma única página. Além disso, você pode definir objetos personalizados e tabelas de cache a serem limpas em páginas específicas.

giorgio79
fonte
0

Outra opção seria criar um formulário e usar a função cache_clear_all no URL cujo cache você deseja limpar. Eu encontrei um exemplo disso use aqui

zarsiwala
fonte
0

Um pouco tarde para a festa aqui, mas o módulo Expiração de Cache provavelmente é o que você está procurando. Ele fornece um controle realmente refinado sobre como o cache é utilizado para vários tipos de entidades (se você usar a versão 2.x do módulo).

No entanto, qualquer versão do módulo fornece acesso a uma ação de regra "Limpar URLs do cache da página" . Portanto, você pode especificar os eventos e condições necessários para que a regra seja acionada e os URLs especificados serão eliminados. Espero que isto ajude.

Lester Peabody
fonte
-1

o material de limpeza de cache pode ser feito simplesmente baixando o módulo drush em http://drupal.org/project/drush

terminal->your drupal directory

escreva o comando drush cc

Retornaria você com

[0]: Cancelar
[1]: todos
[2]: drush
[3]: registro de temas [4]: ​​menu
[5]: css-js
[6]: bloco
[7]: lista de módulos
[8]: lista de temas
[9]: registro
[10]: visualizações

Então você pode selecionar qualquer coisa que queira limpar ..

Se você quiser limpar o cache do site do drupal, poderá instalar e ativar o módulo http://drupal.org/project/admin_menu Ele fornece um ícone inicial em seu drupal sile e fornece uma lista de menus para onde você pode ir para coisas claras em cache ....

Nitesh Sethia
fonte
11
Ele está perguntando sobre avançado, mecanismo de cache personalizado
Codium
Você pode fazer, drush cc viewspor exemplo, onde as visualizações podem ser de qualquer tipo nessa lista.
Yzmir Ramirez