我在laravel中使用数据库队列驱动程序在后台运行作业。
我的一个作业在数据库中创建了一个给定的数字(数千到数十万)记录。我在事务中包装了此作业的代码,以便在作业失败的情况下,不会提交数据库写入。
最初是为了跟踪作业的进度,我想我会计算创建记录的数量,除以预期记录的总数,然后在ui中显示每个作业的百分比,以便用户可以知道他们需要等待多长时间。
这不起作用,因为表在事务期间被锁定。
我想知道是否有人知道排队工作的跟踪进度
对于那些偶然发现这个问题的人来说,有一个包允许:https://github.com/imTigger/laravel-job-status
正如http://laravel.com/docs/5.1/queues#job-events所说
作业成功完成后,可以调用Queue :: after方法
正如http://laravel.com/docs/5.1/queues#failed-job-events所说
排队作业失败时,可以调用Queue :: failing方法
希望这有用:)