Поскольку работники очереди являются долгоживущими процессами, можно использовать транзакции базы данных в цепочечных заданиях очереди.
Что вам нужно сделать, это начать транзакцию по методу ProcessPodcast
задания handle
, в то же время убедившись, что вы отката в случае сбоя цепочки.
// ProcessPodcast parent Job
use DB; // above class, of course
public function handle()
{
DB::beginTransaction();
}
public function failed(Exception $exception)
{
DB::rollback();
// Send user notification of failure, etc...
}
Вы можете зафиксировать вашу транзакцию в любом из связанных заданий.