我正在尝试从支持分页的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);
}
}
}
答案 0 :(得分:2)
您可以使用withChain()
链接作业。如果上链的作业失败,则该作业将不会运行。
Job chaining(作业链接)使您可以指定应排队的作业列表 按顺序运行。如果序列中的一项作业失败,则其余的 作业将无法运行。要执行排队的工作链,您可以使用 任何可调度作业上的withChain方法:
您的情况是这样的:
ParseAllDeptsJob::withChain([
new SendEmailNotification
])->dispatch();
如果处理SendEmailNotification
时发生错误,则不会分派 ParseAllDeptsJob
。