通知父作业所有子作业都已完成?

时间:2018-11-19 13:49:09

标签: php laravel

我有一份工作,我们称之为上级工作

ParentJob::dispatch()

在此作业中,我正在分派子作业,如下所示:

function handle(){
  for($i = 0 ; $i < 5 ;  i ++ ) 
     SubJob::dispatch()
//notify that all sub job has finished 

您是否希望将其他软件用于复杂的队列作业? (例如:芹菜)

1 个答案:

答案 0 :(得分:0)

除非在作业完成之前查询数据库(或任何其他队列驱动程序),否则您将无法查询。

但是,您可以在sync驱动程序上运行子作业。这将在当前线程上运行作业,因此直到作业完成后代码才能继续。这样做的缺点是一次只能运行一个子作业。

function handle() 
{
    for ($i = 0; $i < 5;  i++) {
        SubJob::dispatch()->onConnection('sync');
    }

    echo "Done!";
}