我正在为Laravel Queue Job使用Amazon SQS驱动程序。
我想告知用户该作业已在队列中分派。如何在返回对用户的响应之前检查这个?
例如:
dispatch(new UploadJob($request->all()));
return $this->respond(['status' => 'In Queued']); // Is it really in queue?
答案 0 :(得分:0)
在挂起的作业被销毁之前,作业不会被分派。何时发生这种情况并不总是很清楚,尤其是在管道之类的东西中,管道中的一个步骤可能依赖于在前一个管道步骤中成功调度的作业。同时,管道步骤直到结束才会被销毁,因此在成功调度的所有依赖项都完成之后才会发生实际的调度。
因此,可以通过销毁挂起的作业对象来提前强制分派。
$pendingJob = dispatch(new UploadJob($request->all()));
unset($pendingJob); // Dispatch happens here.
如果您想采取行动,请将其封装在 try...catch
中。