发布
社区首页 >问答首页 >Laravel队列-如何在不使用cronjob的情况下按顺序运行队列

Laravel队列-如何在不使用cronjob的情况下按顺序运行队列
EN

Stack Overflow用户
提问于 2020-04-28 14:03:07
回答 3查看 887关注 0票数 0

我想使用队列作业按时间更新数据,创建到数据库。

例子。我有job_history桌

我将按状态将多条记录插入job_history表(status =0 not )

我想通过队列(时间创建升序)处理状态=0的所有记录

(它是指在处理记录1完成(更新记录状态=1完成或在60年代超时)然后自动旁边的记录2,3.直到结束(更新status=1)

当我在job_history表中创建新记录时,队列总是侦听状态=0的继续句柄

我可以用=>来处理(但是cron作业每分钟只配置至少一次中断工作的=> ),如果记录1完成将继续2(而不是由cronjob占用1分钟)

我不知道laravel队列能做这个工作吗?以及如何设置它?

EN

回答 3

Stack Overflow用户

发布于 2020-04-28 14:07:20

在生产中,为了使用队列作业,您可以使用主管。

您可以阅读以下文档:https://laravel.com/docs/7.x/queues#supervisor-configuration

票数 0
EN

Stack Overflow用户

发布于 2020-04-28 18:59:15

只要队列中有要执行的任务,queue:work就会按顺序一次处理一个作业。你不需要做任何特别的事情来达到你的要求。

此外,您不需要(严格地)一个主管来运行队列,可以使用cron和一个相对简单的脚本来检查工作人员是否正在运行,并根据需要启动或重新启动队列。

票数 0
EN

Stack Overflow用户

发布于 2022-03-11 09:06:31

是的,您可以通过执行以下命令来处理这种情况:

代码语言:javascript
代码运行次数:0
复制
queue:work --stop-when-empty 

对于cron,它将每分钟检查队列是否为空。然后,它将执行队列中的所有现有作业。那就终止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61482104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档