【问题标题】:How to fire subsequent job in Laravel 5.2如何在 Laravel 5.2 中解雇后续工作
【发布时间】:2016-08-15 06:03:00
【问题描述】:

我想在我的第一个作业成功执行后将另一个作业推送到队列中。从我的 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()方法?

【问题讨论】:

    标签: php laravel-5 queue laravel-5.2


    【解决方案1】:

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

    所以只需在句柄方法结束时触发新作业:

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

    【讨论】:

      猜你喜欢
      • 2017-01-27
      • 2015-02-17
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多