代码之家  ›  专栏  ›  技术社区  ›  Pankaj Makwana itbirds

调度程序runInBackground在laravel 5.4中不工作

  •  2
  • Pankaj Makwana itbirds  · 技术社区  · 7 年前

    我正在做一个项目,需要每小时运行一次CRON,每次运行CRON时都会获取大量最新数据,而且有多个用户。

    CRON对每个用户来说都需要时间来完成,所以我尝试在后台运行CRON,这样也不会影响其他CRON。

    $users = User::where("connected", 1)->where("role_id", 2)->get();
    
    foreach ($users as $user) {
        $schedule->command('fetch:product ' . $user->id)->cron('* */4 * * *');
        $schedule->command('fetch:report ' . $user->id)->hourly()->runInBackground();
    }
    

    从上面的例子来看,第一个CRON正在工作,但另一个CRON不工作,因为我添加了 ->runInBackground() 函数,以便它在后台工作,并且我已启用日志,但登录时仅显示第一个CRON而不是第二个CRON。

    代码当前在Windows服务器上,稍后将移动到Linux。

    0 回复  |  直到 7 年前