如何执行laravel作业(队列)


How to execute laravel job (queue)?

开发人员,我遇到了一个问题。我的队列不工作,或者我只是不明白它是如何工作的。我创建了一个命令,应该添加一个新的队列作业。队列的驱动程序是-数据库。执行命令后,我在表"jobs"中看到一个新行。在那之后,我尝试做"php-artisan队列:工作",但什么也没发生。

请帮帮我,我该如何执行这份工作?

来自文档:[Daemon Queue Listener]queue:work artisan命令包含一个--daemon选项,用于强制队列工作者在不重新启动框架的情况下继续处理作业。与队列:侦听命令:相比,这会显著减少CPU使用量

要在守护进程模式下启动队列工作程序,请使用--daemon标志:

php artisan queue:work connection --daemon

但是,如果您没有多个连接,请删除连接并在没有连接的情况下执行:

php artisan queue:work --daemon

它对我有效。

尝试

php artisan queue:listen

相反。

是的,队列作业有时不会运行。对于使用redis队列驱动程序的部署,如果没有,则可以按照此处的说明安装和配置redis,然后应使用php artisan queue:failed-tableCCD_ 6,然后使用CCD_。

要延迟下一次重试,只需在命令中添加--delay=[NUM_OF_SECONDS]

例如,在失败后等待30秒重试

run: php artisan queue:work tries=3 --delay=30

php artisan queue:work --daemon --tries=3 --sleep=5 --delay=10