Laravel Планировщик работает каждую минуту независимо от указанного расписания - PullRequest
0 голосов
/ 27 мая 2020

У меня есть команда Laravel schedule, запускаемая в crontab как:

* * * * * php /home/forge/site/artisan schedule:run

Это устанавливается через Forge.

Затем в app/Console/Kernel.php я запускаю свою работу для ежечасного выполнения:

$schedule->job(new GetRecentArtists())->hourly();

Но он все еще выполняется каждую минуту.

Насколько я понимаю, команда artisan должна выполняться каждую минуту, чтобы можно было проверить расписания заданий, чтобы увидеть, выполняется ли задание требует срабатывания в соответствии с его 'спецификационным c расписанием.

Обновление

Я попытался перезапустить очередь, как это было предложено в комментарии Сахидула, и подтвердил, что ни одно из встроенных расписаний (ежечасно, ежедневно и т. д. c) не препятствует его запуску каждую минуту.

Когда я удаляю расписание из crontab и запускаю его через php artisan schedule:run, я получаю 'Нет запланированные команды готовы к запуску », но задача все равно выполняется.

1 Ответ

1 голос
/ 30 мая 2020

Это был отвлекающий маневр. У меня было сообщение журнала, показывающее, что задание выполняется в методе __construct задания, а не в методе handle.

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

...