如何解决Laravel 任务调度 - 执行何时开始
Laravel 任务调度有类似 everyMinute()
这样的选项,它每分钟运行一个命令。我想知道它实际开始执行的时间是什么时候。是在我运行服务器时还是一分钟的任何特定秒?
我正在尝试根据时差运行一个函数。这是一个伪代码
Run myCustomFunction() if diffInMin(Now,customTime) <= 1
我以为它会运行 1 次,但每次都运行了两次。
解决方法
调度程序通常每分钟在零秒标记附近根据@apokryfos 提到的服务器的当前时间运行一次。
假设 customTime
是固定的 DateTime,是什么让您认为您编写的代码只会运行一次?
- 当
now() === customTime
时diffInMin()
为零,所以 条件diffInMin(now,customTime) <= 1
将评估为真。 - 下一分钟,
diffInMin()
将是 1,所以 条件diffInMin(now,customTime) <= 1
仍会评估为真。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。