Laravelでx分後に実行キューを実行する方法


  1. Delay メソッドを使用する方法:

    use App\Jobs\MyJob;
    $delayInMinutes = 5;
    $job = (new MyJob())->delay(now()->addMinutes($delayInMinutes));
    dispatch($job);

    上記の例では、MyJobクラスのインスタンスを作成し、delayメソッドを使用してジョブをx分後に遅延実行します。dispatch関数を使用してジョブをキューに追加します。

  2. laterメソッドを使用する方法:

    use App\Jobs\MyJob;
    $delayInMinutes = 5;
    $job = (new MyJob())->delay($delayInMinutes * 60);
    dispatch($job);

    上記の例では、delayメソッドに遅延時間を秒単位で指定します。$delayInMinutesを60で乗算することで、分単位の遅延時間を秒単位に変換します。

これらの例では、MyJobは遅延実行するジョブのクラスを表しています。MyJobクラスはIlluminate\Contracts\Queue\ShouldQueueインターフェースを実装する必要があります。

以上が、Laravelでx分後に実行キューを実行する方法の例です。ご参考になれば幸いです。