在webman中使用Crontab定时任务设置一个每分钟的第1秒执行,但是项目启动就会立马执行问题

white

问题描述

万能的大佬们,在webman中使用Crontab定时任务设置一个每分钟的第1秒执行,但是项目启动就会立马执行问题
需求本意是要每分钟的第1秒才执行,而不是像下面的比如我2024-05-20 16:46:39启动项目立刻执行输出,可有破解之法

下面代码输出
2024-05-20 16:46:39
2024-05-20 16:47:01
2024-05-20 16:48:01
...

 public function onWorkerStart(Worker $worker)
    {
        new Crontab('1 */1 * * * *', function () {
            var_dump(date('Y-m-d H:i:s'));
        });
    }
500 2 0
2个回答

Forsend

我测试了下,没有出现你这样的情况,是按照文档里说的,进入下一分钟才会开始执行
截图

  • white 2024-05-20

    我的怎么试都是会的,你workman版本跟php版本是多少哈,该不会跟版本有关吧
    我的 workerman version:4.1.9 PHP version:8.1.27

  • Forsend 2024-05-20

    Workerman 4.1.13
    Webman 1.5.8
    PHP 7.4.33

  • white 2024-05-21

    感谢~ 已OK,是workerman/crontab版本问题

latin

composer info 看下 workerman/crontab 版本,估计版本低了

  • white 2024-05-21

    感谢大哥~~,确实是你说的workerman/crontab版本问题,我这边有问题的里面执行的crontab版本是v1.0.4,升级了v1.0.6版本后可以正常了

×
🔝