我设置每45分钟执行一次,这里就会出现一个问题, 他在 45 执行以后 在整点 以后就再执行一遍 9:45 执行了 10:00 就会再执行一次 10:45 再执行
new Crontab('0 */45 * * * *')
这咋解决
new Crontab('0 */45 * * * *') 改成 new Crontab('* */45 * * * *')
new Crontab('* */45 * * * *')
crontab的间隔时间,是在单位时间内计算的时间间隔。 不是绝对的时间间隔。 例如: ( */10 * * * * *) 不管你执行多少次, 一定是在每分钟的 00, 10、20、30、40、50 秒触发。 (1 */2 * * * *) 不管你执行多少次,都是在偶数分钟的第一秒执行。 和程序的启动时间无关。
如果你需要的是固定的间隔时长执行的话, 可以使用 Workerman\Timer
new Crontab('0 */45 * * * *')
改成
new Crontab('* */45 * * * *')
crontab的间隔时间,是在单位时间内计算的时间间隔。 不是绝对的时间间隔。
例如:
( */10 * * * * *) 不管你执行多少次, 一定是在每分钟的 00, 10、20、30、40、50 秒触发。
(1 */2 * * * *) 不管你执行多少次,都是在偶数分钟的第一秒执行。
和程序的启动时间无关。
如果你需要的是固定的间隔时长执行的话, 可以使用 Workerman\Timer