Laravel Queue - ожидание выполнения заданий перед отправкой следующего пакета - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть синхронный процесс, который занимает около 7 часов, и я пытаюсь преобразовать его в задания, чтобы ускорить его.Проблема в том, что мне нужно убедиться, что все задания на шаге 1 завершены, прежде чем отправлять задания на шаге 2.

Я использую Beanstalkd в качестве драйвера моей очереди в Laravel.Одно из возможных решений, которое приходит мне в голову, - это запуск цикла while, постоянно проверяющего, пуста ли очередь, но это не гарантирует выполнение нескольких последних заданий.

Вот что я пытаюсь сделать вореховая скорлупа:

//Step 1
ModelA::chunk(1000,function($rows){
  foreach($rows as $row){
      Dispatch(new JobA($row);
  }
}

//I Need To Make Sure STEP1 is Done Before I Proceed

//Step 2
ModelB::chunk(1000,function($rows){
  foreach($rows as $row){
      Dispatch(new JobB($row);
  }
}

Я также открыт для другого способа сделать это.

...