webman使用crontab 在查询状态时timers一直在变是为什么

nbyang

按照文档 https://www.workerman.net/doc/webman/components/crontab.html
添加的定时器 在执行php start.php status 之后 返回的进程中 timers一直在变 一会是个位数 一会是两位数
想问一下这个timer是进程内正在运行的定时器数量么? 我两个进程中都是只放了一个定时器为什么一直在变?
而且我每次查询status 时 这两个timers的值是一样的
是不是指的

代码

config/process.php

    'task_msg_chk'  => [
        'handler'  => process\Task_msg_chk::class
    ],
    'task_del_login'  => [
        'handler'  => process\Task_del_login::class
    ],

process\Task_del_login.php

namespace process;

use app\model;
use Workerman\Crontab\Crontab;

class Task_del_login
{
    public function onWorkerStart(): void {
        new Crontab('*/1 * * * * *', function(){
            model\Chk_login::where('exptime','<',time())->delete();
        });
    }
}

另一个Task_msg_chk.php也是差不多的内容都是只创建了一个定时器 也是1秒

status内容
截图
截图
截图

334 1 0
1个回答

walkor

crontab内部实现是计算好这一分钟内有几次执行,然后设置好对应的定时器。每秒执行一次就是有60个定时器,执行一个少一个

🔝