У меня есть синхронный процесс, который занимает около 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);
}
}
Я также открыт для другого способа сделать это.