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

Detecting when job is completed and re-run it

我已经将我的网页抓取功能应用到工作中,我想 运行 持续使用它。我想检测作业何时完成,然后重新运行 作业。我创建了一个触发它的命令。

php artisan update:catalog 有效。在我的命令中,在 handle 中,我放置了 dispatch the job

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

我的工作是这样的:

public function handle()
{
    doTheScraping();
}

现在,如果我通过 php artisan queue:listen database 和 运行 观看 update:catalog 命令,它只工作一次。

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

您可以递归分派作业:

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