Следите за работами в очереди в Laravel - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь получить department подробности из API, который поддерживает разбиение на страницы, поэтому, если я порождаю одну работу на страницу, например,

/departments?id=1&page=1 -> job1
/departments?id=1page=2 -> job2

Как я могу отслеживать эти задания для конкретного отдела, поскольку мне нужно записать ответы в файл txt.

Задания создаются с помощью класса контроллера, например:

class ParseAllDeptsJob implements ShouldQueue
{
  public function handle()
  {
    foreach (Departments::all() as $dept) {
      ParseDeptJob::dispatch($dept);
    }
  }
}

1 Ответ

0 голосов
/ 24 января 2019

Вы можете связать работу, используя withChain().Это задание не будет выполнено, если задания выше по цепочке потерпят неудачу.

Из документации :

Цепочка заданий позволяет указывать список заданий в очереди, которые должны выполняться последовательно.В случае сбоя одного задания в последовательности остальные задания не будут выполнены.Чтобы выполнить цепочку заданий, поставленных в очередь, вы можете использовать метод withChain для любого из ваших диспетчеризуемых заданий:

В вашем случае вы так и сделаете:

ParseAllDeptsJob::withChain([
    new SendEmailNotification
])->dispatch();

SendEmailNotification не будет отправлено, если во время обработки возникнет ошибка ParseAllDeptsJob.

...