Borrar una sola url del caché

9

Usando el sistema de caché estándar de Drupal, ¿hay alguna forma de borrar el caché de un nodo o url sin borrar todo el caché (lo que ralentiza todo el sitio)?

JM01
fuente

Respuestas:

6

Las acciones de la memoria caché del módulo proporcionan un control muy fino sobre la limpieza de la memoria caché.

Desafortunadamente, si resolverá su problema exacto depende de cómo se construya esta URL en particular. En caso de que no haga exactamente lo que desea, su código base seguirá siendo un excelente comienzo para construir más exactamente lo que necesita.

Letharion
fuente
6

Sí, también puedes hacerlo mediante programación.

En este ejemplo, borramos el caché de la página principal:

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

cache_clear_all($url, 'cache_page');

Drupal almacena las rutas como CID en la tabla y en el ejemplo anterior proporcionamos la URL de la página principal como CID como primer argumento en la función y si define el CID, es obligatorio definir el segundo argumento $ bin en la función, que es como de qué tabla desea eliminar el caché. Como tenemos que eliminar una sola página, también está presente en cache_page que contiene caché para páginas.

Sahil Gupta
fuente
3

Hay un módulo para eso: Vaciar la caché de la página . Aquí hay una cita al respecto (de la página del proyecto del módulo):

Aliviando el dolor cuando necesitas enjuagar ... el caché de Drupal.

Vaciar el caché de Drupal en un sitio grande puede parecer que estás esperando para despegar en el asfalto en JFK. El retraso proviene del hecho de que cuando borras el caché de Drupal, borra todo. La mayoría de las veces solo desea vaciar el caché para un objeto específico en una página.

El módulo 'Flush page cache' resuelve este problema al vaciar solo los objetos en caché para una sola página. Además, puede definir objetos personalizados y tablas de caché para borrar en páginas específicas.

giorgio79
fuente
0

Otra opción sería crear un formulario y usar la función cache_clear_all en la url cuyo caché desea borrar. Encontré un ejemplo de uso aquí

zarsiwala
fuente
0

Un poco tarde para la fiesta aquí, pero, el módulo Cache Expire es probablemente lo que estás buscando. Le brinda un control realmente preciso sobre cómo se utiliza el almacenamiento en caché para múltiples tipos de entidades (si usa la versión 2.x del módulo).

Sin embargo, cualquiera de las versiones del módulo le da acceso a una acción de Regla "Borrar URL de la memoria caché de la página" . Por lo tanto, puede especificar los eventos y condiciones necesarios para que se active la regla, y luego las URL que especifique se eliminarán. Espero que esto ayude.

Lester Peabody
fuente
-1

Las cosas de limpieza de caché se pueden hacer simplemente descargando el módulo drush de http://drupal.org/project/drush

terminal->your drupal directory

escribe el comando drush cc

Te devolvería con

[0]: Cancelar
[1]: todos
[2]: drush
[3]: registro de temas [4]: ​​menú
[5]: css-js
[6]: bloque
[7]: lista de módulos
[8]: lista de temas
[9]: registro
[10]: vistas

Para que pueda seleccionar qué cosa quiere borrar ...

Si desea borrar el caché del sitio web de drupal, entonces puede instalar y habilitar el módulo http://drupal.org/project/admin_menu. Proporciona un icono de inicio en su drupal sile y le daría una lista de menú a donde podría ir. para cosas claras de caché ...

Nitesh Sethia
fuente
1
Él está preguntando por avanzado, mecanismo de caché personalizada
Codium
Puede hacer, drush cc viewspor ejemplo, donde las vistas pueden ser de cualquier tipo en esa lista.
Yzmir Ramírez