如何跟踪队列作业的进度?

时间:2015-10-26 23:29:21

标签: message-queue laravel-5.1

我在laravel中使用数据库队列驱动程序在后台运行作业。

我的一个作业在数据库中创建了一个给定的数字(数千到数十万)记录。我在事务中包装了此作业的代码,以便在作业失败的情况下,不会提交数据库写入。

最初为了跟踪作业的进度,我想我会计算创建记录的数量,除以预期记录的总数,然后在ui中显示每个作业的百分比,以便用户可以知道他们有多长时间等待。

这不起作用,因为表在事务期间被锁定。

我想知道是否有人知道排队作业的跟踪进度

2 个答案:

答案 0 :(得分:3)

对于那些偶然发现这个问题的人,有一个包允许:https://github.com/imTigger/laravel-job-status

答案 1 :(得分:2)

http://laravel.com/docs/5.1/queues#job-events

中所述

一旦作业成功完成,就可以调用Queue :: after方法

http://laravel.com/docs/5.1/queues#failed-job-events

中所述

排队作业失败时可以调用Queue :: failing方法

希望这有用:)