我有一个同步过程,大约需要7个小时才能完成,我正在尝试将其转换为作业以加快速度。问题是我需要在分派step2作业之前确保step1中的所有作业都已完成。
我在Laravel中使用 Beanstalkd 作为队列驱动程序。我想到的一个可能的解决方案是运行一个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);
}
}
我也乐于接受另一种方式。