Recibo el siguiente mensaje de error varias veces al día, y mi conocimiento del funcionamiento interno de Magento CE 1.9.0.1 es lo suficientemente escaso que no sé si esto es normal, el comportamiento de asesoramiento de Magento, o si es revelador Yo tengo un mal problema.
Aquí está el mensaje:
Uno o más de los tipos de caché están invalidados: bloquea la salida HTML. Haga clic aquí para ir a Administración de caché y actualizar los tipos de caché.
Actualizar ese caché en particular hace que el problema desaparezca por un par de horas más o menos.
Actualmente no estoy editando diseños, productos, etc., nada en absoluto.
¿Qué está mal y cómo puedo corregirlo?
ce-1.9.0.1
block-cache
Dave G
fuente
fuente
Respuestas:
Primero, es importante entender que esto no es un error, es simplemente una notificación.
Puede haber innumerables razones por las que un bloque de caché se invalida por actualizaciones de productos, cambios en las reglas de precios de catálogo y extensiones de terceros. La ejecución de cronjobs también puede hacer que los cachés de bloque se invaliden también.
Hay algunas extensiones de comunidad disponibles (enumeradas a continuación) que actualizarán sus bloques a medida que se invaliden.
https://github.com/tomasinchoo/Inchoo_InvalidatedBlockCacheFix
https://github.com/mklooss/Loewenstark_InvalidCache
fuente
Esto es un error.
Hay un problema de trabajo de CRON (post 1.9.?) Que ejecuta e invalida la caché HTML, lo que produce problemas (por ejemplo, en mi caso, no se pudo transferir el descuento de precio a la cesta, por lo que se cobraría al cliente una cantidad incorrecta).
¡No deberíamos necesitar ejecutar una extensión para solucionar un problema que se ha introducido!
fuente
Esta es la operación estándar de Magento desde 1.6.xx en adelante. Siempre hay algo que causa una invalidación aleatoria de la caché del bloque html.
Acabo de configurar un observador que se dispara en un trabajo cron periódico, establezco cualquier intervalo que parezca apropiado.
Observer.php
config.xml
fuente
Este indicador de caché invalidado probablemente esté relacionado con el cron DailyCatalogUpdate. Es responsable de aplicar / actualizar las reglas del catálogo.
Una vez al día, llama
Mage::getSingleton('catalogrule/rule')->applyAll();
.Dentro del código de este método, hay una llamada a
$this->_invalidateCache()
, que a su vez llama$this->_app->getCacheInstance()->invalidateType()
a lablock_html
memoria caché.El problema es que invalida el caché sin hacer ninguna verificación para determinar si aún podría ser válido. Para mí, esto es mejor que no invalidar el caché, porque entonces al menos puede saber que podría ser inválido, y usar algo como lo que Fiasco Labs sugirió para vaciar los datos (potencialmente) no almacenados en caché.
Luego se convierte en una decisión sobre si desea un error en el lado de:
A) Mostrar a los clientes el precio incorrecto, pero mantener el caché y, por lo tanto, tener menos carga del servidor
o
B) Muestra el precio correcto, pero tiene más errores de caché y, por lo tanto, una mayor carga del servidor.
Hay dos cosas difíciles en informática: nombrar cosas e invalidar la memoria caché .
fuente
Vea aquí la solución: https://magento.stackexchange.com/a/72687
Básicamente cambie la función dailyCatalogUpdate de app / code / local / Mage / CatalogRule / Model / Observer.php a
fuente