开发人员,我遇到了一个问题。我的队列不工作或者我只是不明白它是如何工作的。我创建了一个命令,应该添加一个新的队列作业。队列的驱动程序是- database。执行我的命令后,我看到表'jobs'中的一个新行。之后,我尝试做“php artisan queue:work”-但什么也没有发生。请帮帮我,我怎样才能完成这项工作?
11dmarpk1#
来自文档:[守护程序队列监听程序] queue:work artisan命令包含一个--daemon选项,用于强制队列工作进程继续处理作业,而无需重新引导框架。与queue:listen命令相比,这可以显著降低CPU使用率:要以守护程序模式启动队列工作进程,请使用--daemon标志:
queue:work
--daemon
php artisan queue:work connection --daemon
但是,如果您没有多个连接,请删除连接并在没有连接的情况下执行:
php artisan queue:work --daemon
对我很有效。
w46czmvw2#
试试看第一个月而不是。
ou6hu8tu3#
是的,有时候你的队列作业不会运行。对于部署,如果你正在使用redis队列驱动程序,如果没有,你可以按照这个here安装和配置redis,之后你应该使用php artisan queue:failed-tablephp artisan migrate为失败的作业创建一个表,然后使用php artisan queue:work redis --tries=3 --backoff=3在失败3秒后重试每个失败的作业3次。
php artisan queue:failed-table
php artisan migrate
php artisan queue:work redis --tries=3 --backoff=3
juud5qan4#
要延迟下一次重试,只需在命令中添加--delay=[NUM_OF_SECONDS]。例如,在失败后等待30秒重试
--delay=[NUM_OF_SECONDS]
run: php artisan queue:work tries=3 --delay=30
或
php artisan queue:work --daemon --tries=3 --sleep=5 --delay=10
4条答案
按热度按时间11dmarpk1#
来自文档:[守护程序队列监听程序]
queue:work
artisan命令包含一个--daemon
选项,用于强制队列工作进程继续处理作业,而无需重新引导框架。与queue:listen命令相比,这可以显著降低CPU使用率:要以守护程序模式启动队列工作进程,请使用
--daemon
标志:但是,如果您没有多个连接,请删除连接并在没有连接的情况下执行:
对我很有效。
w46czmvw2#
试试看
第一个月
而不是。
ou6hu8tu3#
是的,有时候你的队列作业不会运行。对于部署,如果你正在使用redis队列驱动程序,如果没有,你可以按照这个here安装和配置redis,之后你应该使用
php artisan queue:failed-table
php artisan migrate
为失败的作业创建一个表,然后使用php artisan queue:work redis --tries=3 --backoff=3
在失败3秒后重试每个失败的作业3次。juud5qan4#
要延迟下一次重试,只需在命令中添加
--delay=[NUM_OF_SECONDS]
。例如,在失败后等待30秒重试
或