Así almacenamiento en caché, por supuesto, es lo que más me en Magento confunde, como lo hace la mayoría de los otros que estoy seguro. Actualmente, uno de los sitios en los que trabajamos está en Enterprise y utiliza FPC, por supuesto. El problema es que tenemos una actualización de inventario que se ejecuta cada 15 minutos. Se realizan muchos pedidos a CSR por teléfono y a través de un catálogo en un sistema externo fuera de Magento.¿Por qué importa Magento La invalidación de la página índice almacenamiento en caché de producto Excepto en realidad hacen una página no almacena en caché y lo que refrescar hacer, ya que no se almacena en caché
Cada 15 minutos se ejecuta un script para comprobar cualquier inventario en ese sistema y para ver si es diferente entonces lo que es en Magento. Si hay una diferencia, entonces el inventario se actualiza en Magento. Usando todos los métodos de Magento, sin sql ni nada de eso.
Siempre hemos tenido problemas de almacenamiento en caché y he probado todas las últimas técnicas cuando salen. El último que estamos intentando es Redis, y hemos tenido mucho éxito en otros sitios con él. Sin embargo, todavía estamos viendo una carga loca en el servidor y es evidente que las páginas no están en la memoria caché.
Después de la excavación en el código parece que nunca después de cada modelo de guardar o controlador de administración de producto Excepto que se ve a ver si caché necesita ser invalidado. Parece que cambiar cualquier atributo, bueno al menos el inventario marcará que FPC necesita ser invalidado.
estoy confundido acerca de lo que significa la invalidación, ya que hace un tiempo que tenía una pregunta a la atención al cliente por algo similar y esta fue la respuesta
Caché de página completa se llega a estado invalidado a cualquier cambio en los productos, categorías, CMS incluso cuando el stock se reduce después de una venta.
Ahora, cuando la caché de página completa llega a invalidado estado Esto no quiere decir que algo ha cambiado en su interfaz sin embargo cualquier cambio aplicado después no se mostrará la última actualización en la interfaz.
Sin embargo, si tiene la FPC validado en todo momento es una necesidad para su lógica de negocio ciertamente se podría configurar su instalación de Magento a actualizar de forma automática a través de la funcionalidad de cron con la frecuencia que deseo.
Sin embargo, en todas las pruebas que he realizado, tanto en 1.9 como en 1.11 Enterprise, parece que cuando se invalida FPC, la respuesta no se extrae de la memoria caché. Lo cual es contradictorio con lo que han dicho acerca de que simplemente no tiene las actualizaciones más recientes.
¿Hay algo que me falta? ¿Alguien tiene una buena explicación de cómo funciona la invalidación en Magento específicamente para FPC o cualquier enlace bueno para comprender completamente el proceso y el código?
Puede probar esto usted mismo para cualquier página que esté en la página completa en caché. Pero entiendo que el método processRequest
en /app/code/core/Mage/Core/Model/Cache.php
debe establecer el contenido del cuerpo con la respuesta en caché y devolver verdadero si la página está en caché.
Para probar ir a cualquier página de asegurarse de que lo tienes en caché y volviendo realidad. Ingrese y edite un producto, en nuestra cantidad de casos. Esto invalidará a FPC. Sin embargo, ahora cuando carga la página que estaba almacenada en la memoria caché, devuelve falso en este método y no es una página en caché. No sé si esto es correcto para poder decir si una página está almacenada en la memoria caché o no, pero a eso me lleva mi investigación. Por favor, corríjame si estoy equivocado.
ACTUALIZACIÓN: Tras realizar investigaciones adicionales que han encontrado que cuando se guarda un producto en la administración, la acción del controlador
Mage_Adminhtml_Catalog_ProductController::saveAction()
llamará al siguiente método
Mage::getModel('catalogrule/rule')->applyAllRulesToProduct($productId)
Entonces en la clase Mage_CatalogRule_Model_Resource_Rule
, se llama al método applyAllRulesForDateRange
y se activa el evento
catalogrule_after_apply
cual el módulo de la página índice de caché está observando y disparando el método de caché limpia para la etiqueta FPC. Borrando esencialmente todos los registros de caché de FPC.
no veo por qué esto es necesario si antes de esta lógica es el borrado de grabación de FPC que están vinculados a las etiquetas de productos y categoría. ¿Es esto un error?
sé que esto no responde directamente a su pregunta, pero sólo quiero señalar que su rendimiento no debería ser peor que si todos los pedidos se realizaran a través de Magento, ya que después de cada venta su stock disminuiría inv alidar su caché de la misma manera que lo hace su trabajo cron. – nachito
Es cierto que veo su punto allí. Entonces simplemente no tiene ningún sentido en cuanto a por qué la página no se almacena en la memoria caché cuando se invalida por primera vez. –
Esta no es la respuesta que desea, pero he hablado con otros desarrolladores de Magento, y ninguno de nosotros ha tenido un éxito real con el stock FPC. Simplemente nos causa problemas. Por lo general, terminamos usando Varnish o algún otro caché de proxy inverso. Mantenerlo separado de las partes internas, que ya son bastante complicadas. –