需要用到定时器,设置了两个定时器对比效果,一个是Timer::add,一个是crontab定时,都是间隔5秒打印字符串,crontab运行时间总是会出现意外,不执行,或者时间不是5秒,感觉是 webman\process\Task.php 进程文件有些问题,求大神指点
#文件 \webman\plugin\webman\gateway\Events.php
Timer::add(5, function () use($c){
echo date('Y-m-d H:i:s',time()).'-666-'."\n";
});
#文件 webman\process\Task.php
Timer::add(5, function () use($c){
echo date('Y-m-d H:i:s',time()).'-555-'."\n";
});
new Crontab('*/5 * * * * *', function()use($c){
echo date('Y-m-d H:i:s',time()).'-9-9-9-'."\n";
});
运行结果
2022-10-12 11:39:01-9-9-9-
2022-10-12 11:39:05-555-
2022-10-12 11:39:05-666-
2022-10-12 11:39:06-9-9-9-
2022-10-12 11:39:10-555-
2022-10-12 11:39:10-666-
2022-10-12 11:39:11-9-9-9-
2022-10-12 11:39:15-555-
2022-10-12 11:39:15-666-
2022-10-12 11:39:16-9-9-9-
2022-10-12 11:39:20-555-
2022-10-12 11:39:20-666-
2022-10-12 11:39:21-9-9-9-
2022-10-12 11:39:25-555-
2022-10-12 11:39:25-666-
2022-10-12 11:39:26-9-9-9-
2022-10-12 11:39:30-555-
2022-10-12 11:39:30-666-
2022-10-12 11:39:31-9-9-9-
2022-10-12 11:39:35-555-
2022-10-12 11:39:35-666-
2022-10-12 11:39:36-9-9-9-
2022-10-12 11:39:40-555-
2022-10-12 11:39:40-666-
2022-10-12 11:39:41-9-9-9-
2022-10-12 11:39:45-555-
2022-10-12 11:39:45-666-
2022-10-12 11:39:46-9-9-9-
2022-10-12 11:39:50-555-
2022-10-12 11:39:50-666-
2022-10-12 11:39:51-9-9-9-
2022-10-12 11:39:55-555-
2022-10-12 11:39:55-666-
2022-10-12 11:39:56-9-9-9-
2022-10-12 11:40:00-9-9-9-
2022-10-12 11:40:00-666-
2022-10-12 11:40:05-666-
2022-10-12 11:40:10-555-
2022-10-12 11:40:10-666-
2022-10-12 11:40:15-666-
2022-10-12 11:40:20-666-
2022-10-12 11:40:25-666-
2022-10-12 11:40:30-666-
2022-10-12 11:40:35-666-
2022-10-12 11:40:40-666-
2022-10-12 11:40:45-666-
2022-10-12 11:40:50-9-9-9-
2022-10-12 11:40:50-666-
2022-10-12 11:40:55-666-
2022-10-12 11:41:00-666-
2022-10-12 11:41:05-666-
2022-10-12 11:41:10-666-
2022-10-12 11:41:15-666-
2022-10-12 11:41:20-666-
2022-10-12 11:41:25-666-
2022-10-12 11:41:30-666-
刚开始运行正常,大概过几分钟,webman\process\Task.php 进程件中打印的两个定时就出问题了
Ubuntu 20.04.5 LTS Workerman version:4.0.39 PHP version:7.4.32
运行的进程
这边测试没出现你说的不执行问题,可能是你的task进程还执行了耗时的业务影响了。