Laravel queue: работа идет вечно - PullRequest
0 голосов
/ 10 мая 2018

У меня странная проблема с очередью Laravel: работа.В моем crontab я настраиваю работу, как описано в Laravel Docs

* * * * * nginx php /path/to/site/artisan schedule:run >> /dev/null 2>&1

И в моем приложении / Console / Kernel.php я настраиваю это:

$schedule->command('queue:work')->cron('* * * * *');

На моем производственном сервере php artisanочередь: работа выполняется в течение нескольких секунд и «убивается».Это то, что я ожидаю.

В моей очереди на разработку php artisan: работа выполняется вечно.Таким образом, активация задания cron порождает процессы php до тех пор, пока вся память не будет заполнена.

Оба блока - CentOS 7.4, рабочая версия - PHP 7.1, а dev - PHP 7.2

Как сказано в комментарии ниже,Я не думаю, что проблема заключается в команде cron.

Запуск формы ssh:

php artisan queue:work

на dev выполняется вечно, на производстве несколько секунд.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы можете попытаться запустить его один раз, он запускает одно задание и затем завершает процесс.

php artisan queue:work --once=1

Или в вашем коде PHP, используя фасад Artisan:

Artisan::call('queue:work', [
                    '--once' => 1, // Do NOT run it as a daemon (not a continuous function)
                    '--tries' => 1,
                    '--queue' => 'yourqueue',
                    '--timeout' => 0
                ]);
...