跟踪laravel排队的工作

时间:2019-01-24 16:10:08

标签: laravel laravel-queue

我正在尝试从支持分页的API中获取department的详细信息,因此,如果我每页生成一个作业,例如

/departments?id=1&page=1 -> job1
/departments?id=1page=2 -> job2

由于必须将响应写到txt文件中,因此如何跟踪特定部门的这些工作。

通过类似以下的控制器类实例化作业:

class ParseAllDeptsJob implements ShouldQueue
{
  public function handle()
  {
    foreach (Departments::all() as $dept) {
      ParseDeptJob::dispatch($dept);
    }
  }
}

1 个答案:

答案 0 :(得分:2)

您可以使用withChain()链接作业。如果上链的作业失败,则该作业将不会运行。

documentation

  

Job chaining(作业链接)使您可以指定应排队的作业列表   按顺序运行。如果序列中的一项作业失败,则其余的   作业将无法运行。要执行排队的工作链,您可以使用   任何可调度作业上的withChain方法:

您的情况是这样的:

ParseAllDeptsJob::withChain([
    new SendEmailNotification
])->dispatch();
如果处理SendEmailNotification时发生错误,则不会分派

ParseAllDeptsJob