【问题标题】:Laravel queue:work runs foreverLaravel 队列:工作永远运行
【发布时间】:2018-10-20 16:59:45
【问题描述】:

我对 Laravel queue:work 有一个奇怪的问题。 在我的 crontab 中,我设置了 Laravel Docs 中描述的工作

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

在我的 app/Console/Kernel.php 我设置了这个:

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

在我的生产服务器上 php artisan queue:work 运行了几秒钟并被“杀死”。这正是我所期望的。

在我的开发箱 php artisan queue:work 永远运行。所以激活 cron 作业会产生 php 进程,直到整个内存都被填满。

两个盒子都是 CentOS 7.4,生产运行 PHP 7.1,开发运行 PHP 7.2

正如下面评论中所说,我认为 cron 命令不是问题。

运行形式ssh:

php artisan queue:work

on dev 在生产中永远运行几秒钟。

【问题讨论】:

标签: laravel laravel-artisan laravel-queue


【解决方案1】:

你可以尝试运行一次,这会运行一个作业然后退出进程。

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
                ]);

【讨论】:

    猜你喜欢
    • 2015-02-12
    • 2018-04-20
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多