代码之家  ›  专栏  ›  技术社区  ›  user3574492

Laravel任务计划程序在指定的时间范围内不工作

  •  0
  • user3574492  · 技术社区  · 7 年前

    $schedule->call(function () {
                 // task omitted
            })->daily()->timezone('Europe/London')->between('14:00', '15:00');
    

    但是,如果我使用 everyMinute(); 然后它确实成功运行:

           $schedule->call(function () {     
                 // task omitted
            })->everyMinute();
    

    服务器上的CRON设置为每半小时运行一次,因为它是一个共享主机,所以运行时间不能少于半小时:

    0,30    *   *   *   *   /usr/local/bin/php -q /home/username/public_html/bookings/artisan schedule:run >> /dev/null 2>&1
    

    daily()->timezone('Europe/London')->between('14:00', '15:00'); 没有运行?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Devon Bessemer    7 年前

    你有一个相互冲突的规则。

    https://laravel.com/docs/5.5/scheduling

    daily()将任务设置为每天午夜运行。

    因此,您的between规则将使其永远不会运行,因为它将仅在午夜运行,然后它将失败between条件。

    dailyAt('14:00') 而不是 daily()->between()