Я создал задание с циклом foreach, который отправляет другое задание. Есть ли способ запустить даже когда все вложенные задания завершены?
При срабатывании вот что происходит
Шаг 1. Сначала я запускаю пакетное задание
GenerateBatchReports::dispatch($orderable);
Шаг 2. Затем мы запускаем цикл и ставим в очередь другие задания
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$dir = storage_path('reports/tmp/'.str_slug($this->event->company) . '-event');
if(file_exists($dir)) {
File::deleteDirectory($dir);
}
foreach($this->event->participants as $participant) {
$model = $participant->exercise;
GenerateSingleReport::dispatch($model);
}
}
Мне просто нужно знать, когда все вложенные задания выполнены, чтобы я мог сжать отчеты и отправить их пользователю по электронной почте. Когда пакетное задание выполнено, ставя в очередь все вложенные задания, оно удаляется из списка. Есть ли способ сохранить задание до тех пор, пока не будут выполнены вложенные задания, а затем запустить событие?
Любая помощь будет оценена.