戻る
2021-03-22
Laravel Laravel8

Laravel8のジョブバッチ

Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.

Laravel8で追加されたジョブバッチだけど大量のジョブをまとめて実行することがないので使う場面がない。無理矢理使ってみてもあまり効果がない。ドキュメントの例程度では意味がなさそう。使うとしたら全ジョブの完了を待ってからなにかしたい時?

use App\Jobs\ImportCsv;
use Illuminate\Bus\Batch;
use Illuminate\Support\Facades\Bus;
use Throwable;

$batch = Bus::batch([
    new ImportCsv(1, 100),
    new ImportCsv(101, 200),
    new ImportCsv(201, 300),
    new ImportCsv(301, 400),
    new ImportCsv(401, 500),
])->then(function (Batch $batch) {
    // すべてのジョブが正常に完了
})->catch(function (Batch $batch, Throwable $e) {
    // バッチジョブの失敗をはじめて検出
})->finally(function (Batch $batch) {
    // バッチの実行が終了
})->name('Import CSV')->dispatch();

return $batch->id;
投稿者 Invokable
コメントを書くにはログインしてください。
登録 ログイン