我已经将我的Web刮擦功能放入了工作中,我想连续运行它。我想检测工作何时完成,并重新运行工作。我创建了一个用于触发它的命令。
php artisan update:catalog
有效。在我的命令中,内部句柄,我放置了作业
public function handle()
{
dispatch(new AppJobsUpdateCatalog());
}
我的工作看起来像这样:
public function handle()
{
doTheScraping();
}
现在,如果我观看php artisan queue:listen database
并运行update:catalog
命令,则可以使用一次。
如何检测工作何时完成并重新完成工作?
您可以递归分发作业:
public function handle()
{
doTheScraping();
if (!$exit_condition) {
dispatch(new self)
}
}