Привет. Вопрос кодерам. Добавил событие в системную очередь и не хочет запускаться. Очередь создаётся. В ручном режиме запускается и код выполняется. Но при этом в админке, в таблице очереди, статус у выполненного задания стоит Выполняется и постоянный ajax-loader при этом. Куда посмотреть?
Не хочет работать системная очередь в авто режиме
В старые добрые времена сталкивался с таким, и больше не использовал очередь.
Интересно будет посмотреть на поиски проблемы. Я бы начал с разбора задачи крон, которая выполняет отправку сообщений на основе системной очереди github.com/instantsoft/icms2/blob/master/system/controllers/queue/frontend.php
Честно говоря была надежда, что где то не заметил какой нибудь хитрый параметр)))
Lora,
С месяц назад была такая проблема. В очереди на рассылку писем стояло две сотни и никто не отправлялся.
Методы решения:
Включил отладку и стартанул задание хрона вручную, выдало ошибку, мол неизвестный элемент ['payload']['params'].
В файле \system\core\queue.php нашел функцию public static function runJob($job) и прямо после скобки { дописал
if (empty($job['payload']['params'])){dump($job['payload']);}
Какие id оно выдавало — руками удалял из таблицы cms_jobs.
Потом долго-долго стартовал это задание из админки вручную, пока все письма не разослало.
Вот радости-то пользователям было получать письма двухмесячной давности...
Ris, в том то и дело, что нет ошибок. Где мог везде постарался посмотреть. И задание вручную выполняется. В таблице jobs всё пучком. Начало, выпонение, ошибок нет.
Lora,
А остальные задания хрона нормально выполняются?
Не знаю. Оба сайта тестовые. Один на локалке другой в сети.Но недавно делал проект, там тоже крон нужен был, но не эта задача, работало.
Lora,
Ну хотя бы посмотреть в админке в планировщике, какие задания должны срабатывать, но давно не срабатывали, можете?
Или вручную все стартануть (со включенной отладкой, естественно).
Также проверьте, а версия php с которой запускается запускается хрон та же, как с которой сам сайт работает?
Да, три задания недавно выполненные вижу.
Посмотрел код, как Zau4man, посоветовал и вот, что вижу.
Подучается $item['attemps'], а это попытки, должны добавляться в параметры, а это json. У меня при выполнении не добавляются, но не это интересно. Зачем вообще они там нужны, когда для них есть отдельное поле?
Кажется мне, что как-то неправильно Вы «добавили событие в системную очередь».
Вот тут описано, как надо:
Кажется мне, что как-то неправильно Вы «добавили событие в системную очередь».
Из чего кажется?
Если бы не правильно, то и не добавилось бы. Наверное)
Нет. Я думаю, что может дело в том, что я запускаю событие из аякса. Сейчас буду проверять эту версию.
Короче на данный момент при запуске вручную, всё работает корректно.(Пришлось подкорректировать класс). Код выполняется, задание при этом из очереди удаляется. Единственное не понятно как задать разный приоритет. И надо ли это вообще. Но в авторежиме не работает. Но это уже наверное проблема крона. Завтра на хостинге попробую.
Нашёл причину. Или следствие). В автоматическом режиме крон не может прочитать файл, если в нём подключены другие классы.
Нашёл причину. Или следствие). В автоматическом режиме крон не может прочитать файл, если в нём подключены другие классы.
Привет. А можно по конкретнее про файл и подключенный в нем класс? У меня такая же проблема. Не работает емейл-рассылка. Заранее спасибо!