同步作业Laravel

时间:2016-09-30 09:03:39

标签: php laravel queue jobs

我有4种方法:A,B1,B2,B3,并希望将它们的执行封装在单独的作业中。 A生成B使用的结果,因此A必须在启动B之前完成,如果A失败则不要启动B.同样出于性能原因,我不希望B1,B2,B3同时运行,但是顺序运行当B1结束时开始B2,但是他们不共享结果,所以如果某些B失败,则正常启动其他。我不希望任何重试失败,只需尝试一次。因此,执行顺序是A-> B1-> B2-> B3。

在文档中,没有太多关于同步机制的内容,因此如何实现这一点并不明显。我发现Queue :: after handler,据我所知,每个工作结束时,你如何过滤哪个工作?按课程if(is_a($event->job , 'JobAClass'))...

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

    Queue::after(function (JobProcessed $event) {
        // $event->connectionName
        // $event->job
        // $event->job->payload()
    });

0 个答案:

没有答案