- キュージョブの作成
まず、遅延実行したい処理を含むキュージョブを作成します。キュージョブは、
php artisan make:job
コマンドを使用して生成できます。以下は例です。
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class MyDelayedJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
// 遅延実行したい処理をここに記述する
}
}
- キューのディスパッチ キュージョブを実行するためには、キューにディスパッチする必要があります。以下のコードを使用して、指定した時間後にキューをディスパッチします。
use App\Jobs\MyDelayedJob;
use Illuminate\Support\Facades\Queue;
$delayInMinutes = 5; // 実行までの遅延時間(分)
$job = new MyDelayedJob();
Queue::later(now()->addMinutes($delayInMinutes), $job);
上記の例では、$delayInMinutes
変数に5を指定しています。これにより、ジョブは現在の時刻から5分後に実行されます。必要に応じて、遅延時間を調整してください。
これで、指定した時間後にキューが実行されるようになりました。遅延実行されるジョブは、キューワーカーが実行するまで待機状態になります。