Планировщик задач Laravel не работает

Я попытался запустить планировщик в Laravel 5.3 с помощью следующего кода в App/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work')->everyMinute()->withoutOverlapping();
}

и установите задания cron на моем общем хостинге следующим образом:

* * * * * php /home/username/public_html/laravel/artisan schedule:run >> /dev/null 2>&1

но это не работает в моем общем хостинге

Я использовал драйвер базы данных для своей очереди, и попытки все еще 0, то есть очередь не выполняется планировщиком задач.

Кто-нибудь может помочь мне с этой проблемой?

2

Решение

Несколько вещей, которые вы можете проверить:

Очередь: работа

Обратите внимание, что после запуска команды queue: work она продолжит
запускать до тех пор, пока он не остановится вручную или не закроете свой терминал.
https://laravel.com/docs/5.3/queues#running-the-queue-worker

Вы уверены, что хотите запускать новый процесс с планировщиком каждую минуту?

планировщик питания

artisan schedule: команда run должна запускаться каждую минуту, чтобы планировщик работал. Это может быть сделано с помощью cron: https://laravel.com/docs/5.3/scheduling#introduction

1

Другие решения

Эта ссылка может быть полезна для настройки планировщика. Я сделал с этим. Пожалуйста, попробуйте.

https://www.sitepoint.com/managing-cronjobs-with-laravel/

0

Я использую виртуальный хостинг на A2hosting, и команда, которая работает для меня это

nohup php artisan queue:work &

& гарантирует, что команда продолжит работу и с nohup процесс не будет остановлен, даже если вы выйдете или закроете терминал.

ОБНОВИТЬ:
Если вы можете запускать команды оболочки из PHP, это решение, которое я в конечном итоге реализовал. Через 3 дня все работает как положено. Только один экземпляр queue:work работает, и он только перезапускается, когда он остановился. Расписание работает каждую минуту.

if ( ! strstr(shell_exec('ps xf'), 'php artisan queue:work'))
{
$schedule->command('queue:work')->everyMinute();
}

Вы также можете искать на queue:work вместо php artisan queue:work, Бежать shell_exec('ps xf') в повозке и посмотри что получишь.

0
По вопросам рекламы [email protected]