我想在第一个成功执行后将另一个作业推入队列。从我的ShopController.php我开火:
$this->dispatch(new ItemPurchased($myVariables));
在ItemPurchased.php中:
public function handle()
{
// some code that charges a user's credit card
}
如果ItemPurchased.php成功,我如何解雇后续工作?
从Laravel文档中,您可以在ServiceProvider中执行以下操作:
{
Queue::after(function (JobProcessed $event) {
// $event->connectionName
// $event->job
// $event->data
});
}
但是,在ItemPurchase.php成功完成之后,我如何指定,然后再派遣另一份工作?作业失败时,代码可以运行failed()
方法。是否有success()
方法以前没有被提及过?
答案 0 :(得分:1)
作业通过队列驱动程序脱机运行。但是,一旦调用了handle方法,它就会遵循正常的同步代码执行。
因此,只需在句柄方法结束时启动新作业:
public function handle()
{
//Some code here
dispatch(new JobClass());
}