如何执行laravel作业(队列)?

8fq7wneg  于 2023-01-06  发布在  其他
关注(0)|答案(4)|浏览(183)

开发人员,我遇到了一个问题。我的队列不工作或者我只是不明白它是如何工作的。我创建了一个命令,应该添加一个新的队列作业。队列的驱动程序是- database。执行我的命令后,我看到表'jobs'中的一个新行。之后,我尝试做“php artisan queue:work”-但什么也没有发生。
请帮帮我,我怎样才能完成这项工作?

11dmarpk

11dmarpk1#

来自文档:[守护程序队列监听程序] queue:work artisan命令包含一个--daemon选项,用于强制队列工作进程继续处理作业,而无需重新引导框架。与queue:listen命令相比,这可以显著降低CPU使用率:
要以守护程序模式启动队列工作进程,请使用--daemon标志:

php artisan queue:work connection --daemon

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

php artisan queue:work --daemon

对我很有效。

w46czmvw

w46czmvw2#

试试看
第一个月
而不是。

ou6hu8tu

ou6hu8tu3#

是的,有时候你的队列作业不会运行。对于部署,如果你正在使用redis队列驱动程序,如果没有,你可以按照这个here安装和配置redis,之后你应该使用php artisan queue:failed-tablephp artisan migrate为失败的作业创建一个表,然后使用php artisan queue:work redis --tries=3 --backoff=3在失败3秒后重试每个失败的作业3次。

juud5qan

juud5qan4#

要延迟下一次重试,只需在命令中添加--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

相关问题