【问题标题】:Laravel Scheduler Running multiple timeLaravel 调度程序运行多次
【发布时间】:2019-03-12 12:44:53
【问题描述】:

我正在使用 Laravel 5.6

其中,我正在使用调度程序在 Homestead 中运行 Laravel

我已经像这样在 Homestead.yaml 文件中配置了调度程序

- map: demo.test
  to: /home/vagrant/sites/project/public
  schedule: true

在 App\Console\Kernal.php 我正在运行这段代码

$schedule->call(function (){
   \Log::info('works');
})->at('18:34');

我得到了三次输出???延迟 4 秒

[2019-03-12 18:34:04] local.INFO: works  
[2019-03-12 18:34:04] local.INFO: works  
[2019-03-12 18:34:04] local.INFO: works

预期输出一次。

[2019-03-12 18:34:00] local.INFO: works  

【问题讨论】:

  • 你确定这是正确的日志吗?它已记录在 17:55:33 并且您的调度程序介于 17:0017:02 之间。
  • 输出只是一个例子不用担心
  • 你能给我们实时的真实日志吗?用example 很难找到每一秒都很重要的原因。
  • 我已经更新了真实日志。

标签: php laravel laravel-5.6 homestead


【解决方案1】:

between 是一个包容性函数,这意味着它将在 17:00、17:01 和 17:02 运行。如果您希望它在特定时间运行一次,请使用at()

$schedule->call(function (){
   \Log::info('works');
})->at('17:01');

【讨论】:

  • 这和时间无关,我可以把时间设置为 17:00 和 17:25 仍然输出到那里的时间。
  • 我也试过 vagrant reload --provision 然后 vagrant ssh
猜你喜欢
  • 2017-01-31
  • 2019-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-15
相关资源
最近更新 更多