Laravel跟踪工作链的开始和结束

时间:2018-07-30 13:27:38

标签: php laravel laravel-queue laravel-jobs

我已按照文档在Laravel中创建了一系列部署作业:

https://laravel.com/docs/5.6/queues#job-chaining

从文档中(类似于我的代码):

ProcessPodcast::withChain([
    new OptimizePodcast,
    new ReleasePodcast
])->dispatch();

有没有办法跟踪工作链是否已经开始和完全结束?

我认为有可能总是以beforeDeployment工作和afterDeployment工作开始连锁经营。由于发生错误时链条会断裂并且无法到达afterDeployment,因此这似乎是可行的。

是否有采取这种方法的想法,或者是否有更容易完成的事情?

我想我的方法可以让我像这样设置一个侦听器:

https://laravel.com/docs/5.6/queues#job-events

干杯!

1 个答案:

答案 0 :(得分:2)

老实说,如果我正在实施此操作–成功发生PodcastWasReleased时会触发事件通知我,但是我会使用Queue::failing()侦听器(https://laravel.com/docs/5.6/queues#failed-job-events)再次,触发事件PodcastFailedToRelease

您可以将失败的作业传递到事件中,以简要了解发生了什么,以及JobFailed对象中可用的堆栈跟踪。

有帮助吗?也许它至少会让您走上一条不同的道路。

让我知道您的生活如何:)