我已按照文档在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
干杯!
答案 0 :(得分:2)
老实说,如果我正在实施此操作–成功发生PodcastWasReleased
时会触发事件通知我,但是我会使用Queue::failing()
侦听器(https://laravel.com/docs/5.6/queues#failed-job-events)再次,触发事件PodcastFailedToRelease
。
您可以将失败的作业传递到事件中,以简要了解发生了什么,以及JobFailed对象中可用的堆栈跟踪。
有帮助吗?也许它至少会让您走上一条不同的道路。
让我知道您的生活如何:)