Por qué no puedo acceder a mi clave de caché personalizado a través de CLI cuando se estableció a través de una solicitud web?

magento.stackexchange https://magento.stackexchange.com/questions/5543

  •  16-10-2019
  •  | 
  •  

Pregunta

Tengo un método que llama al siguiente código de una solicitud web.

Mage::app()->getCache()->save('bar', 'foo', array(), 60*5);

Tengo otro método que las llamadas

Mage::app()->getCache()->load('foo');

El método que se carga el valor almacenado en caché devuelve el valor correcto cuando se le llama por medio de una solicitud web, pero siempre devuelve falso cuando ejecuto el código a través de la CLI.

La razón por la que estoy tratando de correr a través de la CLI es que el código en cuestión es parte de una tarea de cron. Estoy usando n98-magerun sys:cron:run foobar_cron para ejecutar el código.

Mi primer pensamiento fue que tal vez huyendo de la CLI iniciaría una vista tienda diferente, pero he dio un paso a través del código y no han encontrado nada por el estilo.

El intentar conseguir el valor almacenado en caché cuando se ejecuta a través de la web a través de obras de administrador.

Estoy usando el sistema de archivos estándar de Magento caché, y no tienen ninguna configuración de la caché personalizados en mi local.xml. Ejecución de EE 1.12.0.2.

Yo esperaría que cuando me puse una clave de caché a través de una solicitud web que podría acceder el mismo valor cuando se ejecuta a través de la CLI y vice verca. ¿Por qué no es este trabajo como se esperaba, y qué puedo hacer para solucionarlo?

¿Fue útil?

Solución

Mi apuesta está en los permisos de archivo. Asegúrese de que su directorio ha var/cache/ lectura / escritura, tanto para el usuario de shell y el usuario ejecuta Apache bajo.

Cuando no se puede leer desde el directorio de caché de lo normal, entonces usará en silencio en el directorio temporal del sistema, llenarlo con algo más que unos pocos registros Zend cache / locale.

Otros consejos

Si su base de caché es entonces APC CLI y Apache APC son completamente diferentes y no puede ser compartida entre los dos desgracia.

Si su base de caché de sistema de archivos se basa entonces usted debe buscar en los permisos. Si los permisos es un problema que podría considerar el funcionamiento de su cron como el usuario Apache como un trabajo en torno a pesar de que no es lo ideal, una mejor opción es buscar en el uso de ACL - echar un vistazo a la orden setfacl si eso es aplicable a su distribución de Linux

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top