Почему я не могу получить доступ к своему пользовательскому ключу кэша через CLI, когда он был установлен через веб -запрос?

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

  •  16-10-2019
  •  | 
  •  

Вопрос

У меня есть метод, который вызывает следующий код из веб -запроса.

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

У меня есть еще один метод, который вызывает

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

Метод, который загружает кэшированное значение, возвращает правильное значение при вызове через веб -запрос, но всегда возвращает false, когда я запускаю код через CLI.

Причина, по которой я пытаюсь запустить через CLI, заключается в том, что рассматриваемый код является частью задачи Cron. я использую n98-magerun sys:cron:run foobar_cron запустить код.

Моя первоначальная мысль заключалась в том, что, возможно, бег от CLI инициирует другой вид магазина, но я прошел через код и не нашел ничего подобного.

Попытка получить кэшированное значение при запуске через Интернет через Admin Works.

Я использую стандартный кэш файловой системы Magento, и у меня нет пользовательских настройки кэша в моем local.xml. Запуск EE 1.12.0.2.

Я ожидаю, что когда я установил ключ кэша через веб -запрос, который я мог бы получить одно и то же значение при запуске через CLI и вице -Verca. Почему это работает, как и ожидалось, и что я могу сделать, чтобы это исправить?

Это было полезно?

Решение

Моя ставка на файловых разрешениях. Убедитесь, что вы var/cache/ Directory имеет чтение/запись как для пользователя Shell, так и для пользователя Apache работает.

Там, где он не может читать из обычного каталога кэша, он молча задержится в каталоге системы системы, заполняя его более чем несколькими записями Zend/Locale Cache.

Другие советы

Если ваш бэкэнд кеша - APC, то CLI и APACH APC совершенно разные и не могут быть разделены между двумя, к сожалению.

Если ваш бэкэнд кэша основан на файловой системе, вам следует посмотреть на разрешения. Если разрешения являются проблемой, вы можете рассмотреть возможность запуска своего Cron в качестве пользователя Apache в качестве обхода вокруг, хотя это не идеально, лучшим вариантом является рассмотрение ACL - взглянуть на setfacl Команда, если это применимо к вашему дистрибутиву Linux

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top