我在laravel中使用数据库队列驱动程序在后台运行作业。
我的一个作业在数据库中创建了一个给定的数字(数千到数十万)记录。我在事务中包装了此作业的代码,以便在作业失败的情况下,不会提交数据库写入。
最初为了跟踪作业的进度,我想我会计算创建记录的数量,除以预期记录的总数,然后在ui中显示每个作业的百分比,以便用户可以知道他们有多长时间等待。
这不起作用,因为表在事务期间被锁定。
我想知道是否有人知道排队作业的跟踪进度
答案 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方法
希望这有用:)