Magento 1.9.2.1 Cron Не Работает


Cron был проблемой с 1.8/1.9 или всякий раз, когда Magento делал cronjobs обязательными. Я сделал все, что мог, и нахожусь в полном замешательстве. Я серьезно подумываю о том, чтобы сделать новую установку Magento и начать все сначала. Я звоню в cron обоими cron.sh и cron.php . Я изменил cron.php и добавил $isShellDisabled = true; там, где это должно быть. Я установил планировщик AOE. С помощью этого расширения я могу видеть все запланированное, что никогда не выполняется. Я проверил cron_schedule таблица в базе данных, и она постоянно пуста, что бы я ни делал. Я связался с провайдером хостинга, и они сообщили мне, что cron работает должным образом. Я даже изменил разрешения cron.php и cron.sh чтобы 7, 5, 5.

Я получаю эти электронные письма...

Cron error while executing core_email_queue_send_all:

exception 'Mage_Core_Exception' with message 'Too late for the schedule.' in /home/lbingman/public_html/app/Mage.php:595 Stack trace:
#0 /home/lbingman/public_html/app/code/community/Aoe/Scheduler/Model/Observer.php(47): Mage::throwException('Too late for th...')
#1 /home/lbingman/public_html/app/code/core/Mage/Core/Model/App.php(1357): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer))
#2 /home/lbingman/public_html/app/code/core/Mage/Core/Model/App.php(1336): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#3 /home/lbingman/public_html/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#4 /home/lbingman/public_html/cron.php(76): Mage::dispatchEvent('default')
#5 {main}

Я не уверен, что с ними делать. Я пропустил заказ на несколько дней, потому что меня никогда не уведомляли по электронной почте.

ОБНОВЛЕНИЕ: Как только я набираю это, я вижу, что cron был только что выполнен, и я получил тестовое электронное письмо это я отправил себе через тестовый заказ. Тем не менее, выполнение задания было запланировано на 1:38 утра, и я увидел в планировщике AOE, что задание было выполнено в 1:45 утра. Это поражает меня, потому что у меня есть закадычные друзья на сервере, настроенные на запуск каждую минуту.

Как раз в тот момент, когда я думаю, что, возможно, проблема связана с одной областью, происходит что-то еще, что снова полностью сбивает меня с толку. Кто-нибудь имеет представление о том, что происходит? Я не могу поверить, что я единственный, у кого есть эта проблема.

РЕДАКТИРОВАТЬ: я должен обратите внимание, что когда я вручную выполняю cron.php введя ссылку на него в веб-браузере, cron выполняет, и все прошлые невыполненные задачи отображаются как "Успешные" в расширении планировщика AOE.

Author: Lucas, 2015-09-14

3 answers

В каком часовом поясе установлен ваш сервер? И каков ваш часовой пояс глобальной конфигурации Magento?

Too late for the schedule. ошибки могут возникать из-за расхождений между этими двумя настройками.

Также ознакомьтесь с этой статьей: https://support.hypernode.com/knowledgebase/magento-utc-hypernode/

Гайку часового пояса на самом деле не так уж трудно расколоть. Но в Magento есть некоторые внутренние компоненты, которые теряют смысл часовых поясов, преобразуясь в древний формат времени, называемый Время Unix. Это формат времени, не имеющий представления о часовых поясах.

Эта проблема возникает при расчете данных, связанных с датами, и проявляется в виде странных проблем, таких как:

  • Правила цен по каталогу исчезнут через несколько часов.
  • Crons Magento отправит вам электронное письмо с ошибкой "Слишком поздно для расписания".

Все это потому, что MySQL и Magento не согласны с часовым поясом для использования, а также неправильно взаимодействуют.

Для решения этой проблемы, Magento должен работать в том же часовом поясе, что и сервер. Затем, чтобы отобразить все даты и время на ваших веб-сайтах и магазинах так, как вам нравится, установите часовой пояс для всех веб-сайтов в соответствии с вашим предпочтительным часовым поясом.

 4
Author: Erfan, 2020-06-15 08:30:17

Тем не менее, и извините за неправильный комментарий: Я решил свою проблему вчера:

Проблема заключалась в ошибке magento, и я использовал следующий подход для решения проблемы:

Откройте файл cron.php (создайте резервную копию перед редактированием) в корневом каталоге Magento и найдите (около строки 47): $isshelldisabled = (stripos(PHP_OS, "победа")===ложь)? $isshelldisabled: истина; После этой строки добавьте: $isshelldisabled =истина;

Сохраните файл.

Через пару через несколько минут крон начал работать.

Надеюсь, это поможет ребятам.

 2
Author: Martin_556, 2016-01-20 10:09:25

Проблема с часовым поясом между сервером и Magento определенно была проблемой, но я не уверен, что из-за этого Cron не выполнялся.

В любом случае, я исправил проблему с часовым поясом, поэтому я больше не получаю электронные письма с указанием Too late for the schedule.

На данный момент единственный способ, которым я могу заставить Cron выполнить, - это использовать cron.php . Я знаю cron.sh это лучший путь, но синтаксис, который мой хостинг-провайдер предоставил мне для выполнения cron.sh не работает. Пока мой хостинг-провайдер чтобы все прояснилось, я должен придерживаться использования cron.php чтобы выполнить Cron.

Я считаю, что на сервере что-то не так, потому что у меня есть cron.php настроено на выполнение каждые 5 минут, и на самом деле оно выполняется каждые 10 минут.

 1
Author: Lucas, 2015-09-15 05:09:12