1

我按照文档在 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

干杯!

4

1 回答 1

2

老实说,如果我正在实施这个 - 我会在成功时触发一个事件PodcastWasReleased通知我,但我会挂接到Queue::failing()监听器(https://laravel.com/docs/5.6/queues#failed-job-events)再次,触发一个事件PodcastFailedToRelease

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

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

让我知道你是怎么办的 :)

于 2018-07-30T15:57:07.427 回答