如何在Laravel 5.2中解雇后续工作

时间:2016-08-15 06:03:01

标签: php laravel-5 queue laravel-5.2

我想在第一个成功执行后将另一个作业推入队列。从我的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()方法以前没有被提及过?

1 个答案:

答案 0 :(得分:1)

作业通过队列驱动程序脱机运行。但是,一旦调用了handle方法,它就会遵循正常的同步代码执行。

因此,只需在句柄方法结束时启动新作业:

public function handle()
{
    //Some code here
    dispatch(new JobClass());
}