Laravel5.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()これまでに言及されていない方法はありますか?

ミナアバディール

ジョブは、キュードライバーを介してオフラインで実行されます。ただし、handleメソッドが呼び出されると、通常の同期コードの実行に従います。

したがって、handleメソッドの最後で、新しいジョブを起動するだけです。

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

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事