我已将我的网络抓取功能放入工作中,我想继续运行它。我想检测作业何时完成,然后重新运行作业。我创建了一个触发它的命令。
php artisan update:catalog
有效。在我的命令,内部句柄中,我放置了调度工作
public function handle()
{
dispatch(new \App\Jobs\UpdateCatalog());
}
我的工作看起来像这样:
public function handle()
{
doTheScraping();
}
现在,如果我通过php artisan queue:listen database
观看并运行update:catalog
命令,它可以运行一次。
如何检测作业何时完成并在完成时重新运行作业?
答案 0 :(得分:1)
您可以递归调度作业:
public function handle()
{
doTheScraping();
if (!$exit_condition) {
dispatch(new self)
}
}