Estoy trabajando con Magento 1.9.0.1, y de vez en cuando nuestros servidores Redis que alojan el caché de Magento (AWS ElastiCache) se apagarán. Cuando esto sucede, Magento comete errores fatales hasta que Redis vuelve a estar disponible.
Esta podría ser una pregunta difícil de responder rápidamente, pero lo que me pregunto es por qué Magento no puede actuar como si la memoria caché estuviera deshabilitada cuando no puede conectarse a Redis, en lugar de errar fatalmente.
No conozco ninguna configuración o módulo que le dé a Magento esta capacidad, pero en la superficie no parece difícil. Magento utiliza local.xml
para descubrir cómo conectarse a la base de datos y los backends de caché. Luego se conecta a la base de datos y mira las opciones de caché para saber si usarlo o no. Si la base de datos le indica que use una memoria caché determinada, cambia algunos indicadores (probablemente una variable global o la propiedad de un singleton) y usa el backend de la memoria caché para el resto de la solicitud. ¿No podría hacerse que Magento desactive esto durante esa solicitud si se produce un error de conexión?
Un sitio lento es mejor que un error fatal.
Editar: Evidentemente, algunas personas no entienden lo que estoy preguntando o en realidad no leyeron esta publicación.
¿Existe un módulo que le otorgue a Magento la capacidad de funcionar sin errores fatales cuando Redis no está disponible, cuando Redis se está utilizando como el método de almacenamiento de caché principal.
Si no, ¿alguien podría aclararme por qué esto no es posible o es tan difícil?
fuente
Respuestas:
Todo lo que tienes que hacer es solucionar 3 problemas / problemas:
Obviamente, puede cambiar algo de código y colocar su lógica en lugar de error.
fuente