![](/img/trans.png)
[英]How can I use & set cookies whilst inside a Laravel queued Job, and why is my current solution failing?
[英]How can I associate a queued job with a particular user in Laravel?
我建立了一个基于Laravel的系统,用户可以开始执行“任务”,该任务重复多次,每次重复之间都有延迟。 我已经通过给一个带有amount
参数的作业排队来完成此任务,然后将其递归地排队另一个作业,直到计数增加为止。
例如,我以3次重复开始我的任务:
amount
参数3进入队列。运行后,数量递减为2。同一作业以指定的5秒延迟再次进入队列。 amount
的1。 amount
已达到0,不会再次排队并且任务已完成。 这按预期工作,但我需要知道用户当前是否正在处理任何任务。 我需要能够执行以下操作:
amount
上工作。 我正在将database
驱动程序用于名为tasks
的队列。 在这里有没有现成的方法可以实现我的目标?
谢谢!
您不应该使用延迟一遍又一遍地重复同一作业的多个重复。 该功能适用于重试失败的网络请求之类的事情。 如果计数太高,一次将多个队列中的作业连续几个小时会导致队列出现内存问题。
我建议您使用php artisan schedule:run
功能每1-5分钟运行一次命令,以检查是否需要运行用户作业。 如果是这样,请启动该作业,然后向用户表(或要跟踪这些表的任何表)添加状态标志。 完成后,将同一行标记为已完成,然后等待cron下一次运行以再次执行该操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.