Batchable Actions

Laravel Nova 4.0’da, Batchable Actions özelliği sayesinde işlemleri toplu olarak gerçekleştirebilirsiniz. Bu özellik, Laravel’in job batching işlevselliğini kullanarak, aksiyonların tüm toplu işlemi tamamlandığında ek görevler gerçekleştiren geri çağrılar kaydetme yeteneği sunar.

Batchable Actions ile ilgili temel kavramları ve kullanımını örneklerle açıklamak için, aşağıdaki örneği inceleyelim:

İlk olarak, bir aksiyonun toplu işlem özelliği kullanabilmesi için withBatch metodunu kullanmalısınız:

use Illuminate\Bus\Batch;
use Throwable;

public function withBatch(ActionFields $fields, PendingBatch $batch)
{
    // Geri çağrılar ve işlemler
}

withBatch metodu içerisinde, toplu işlemin durumuna göre farklı geri çağrılar tanımlayabilirsiniz:

  1. then – Tüm işler başarıyla tamamlandığında çağrılır.
  2. catch – İlk toplu işlem hatası tespit edildiğinde çağrılır.
  3. finally – Toplu işlem tamamlandığında çağrılır (başarılı veya başarısız).

Örnek olarak, tüm işler başarıyla tamamlandığında, seçili modellere erişmek için then geri çağrısını kullanabilirsiniz:

$batch->then(function (Batch $batch) {
    // Tüm işler başarıyla tamamlandı...
    $selectedModels = $batch->resourceIds;
});

Bir işlemde başarısızlık tespit edildiğinde, catch geri çağrısını kullanarak hatayı işleyebilirsiniz:

$batch->catch(function (Batch $batch, Throwable $e) {
    // İlk toplu işlem hatası tespit edildi...
});

Ve toplu işlemin tamamlanmasından bağımsız olarak, finally geri çağrısı kullanarak işlem sonrası kodlarınızı çalıştırabilirsiniz:

$batch->finally(function (Batch $batch) {
    // Toplu işlem tamamlandı...
});

Batchable Actions özelliği, büyük miktarda veriyi işlemek veya aksiyonların tüm toplu işlemini izlemek istediğinizde kullanışlıdır.