检测作业何时完成并重新运行

时间:2017-03-13 23:47:40

标签: php laravel queue jobs laravel-5.4

我已将我的网络抓取功能放入工作中,我想继续运行它。我想检测作业何时完成,然后重新运行作业。我创建了一个触发它的命令。

php artisan update:catalog有效。在我的命令,内部句柄中,我放置了调度工作

public function handle()
{
    dispatch(new \App\Jobs\UpdateCatalog());
}

我的工作看起来像这样:

public function handle()
{
    doTheScraping();
}

现在,如果我通过php artisan queue:listen database观看并运行update:catalog命令,它可以运行一次。

如何检测作业何时完成并在完成时重新运行作业?

1 个答案:

答案 0 :(得分:1)

您可以递归调度作业:

public function handle()
{
    doTheScraping();
    if (!$exit_condition) {
        dispatch(new self)
    }
}