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

Ern*_*kot 4 message-queue laravel-5.1

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

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

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

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

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

Vin*_*rat 6

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


Art*_*Bay 1

http://laravel.com/docs/5.1/queues#job-events中给出的

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

http://laravel.com/docs/5.1/queues#failed-job-events中给出的

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

希望这有帮助:)

  • 谢谢你的回答,我知道了方法。我需要的是各个作业在运行时的进度,例如我想要一种方法来知道作业何时完成 10% 等等 (5认同)