Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

gtimer

...

gtimer是一个并发安全的高性能任务定时器,类似于JavaTimergtimer内部实现采用灵活高效的分层时间轮(Hierarchical Timing Wheel)设计,被设计为可单进程管理维护百万级别以上数量的定时任务。gtimer任务定时器与gcron定时任务模块区别: -

  • gtimer属于高性能模块,是框架核心模块,构建任何定时任务的基础,任何方法操作耗时均在纳秒级别。

...

  • gtimer可适用于任何的定时任务场景中,例如: TCP通信、游戏开发等场景。

...

  • gcron支持经典的crontab形式的定时任务语法,最小时间设定间隔为

...

  • gcron底层实现基于gtimer

使用场景

任何定时任务场景,大批量定时任务/延迟任务的场景,超时控制/频率控制的业务场景,对于定时时间准确度要求不高的业务场景。

...

https://godoc.org/github.com/gogf/gf/os/gtimer简要说明: 1.

简要说明: 

  1. New方法用于创建自定义的任务定时器对象:

...

    • slot 参数用于指定每个时间轮的槽数;

...

    • interval 参数用于指定定时器的最小tick时间间隔;

...

    • level 为非必需参数,用于自定义分层时间轮的层数,默认为6

...

  1. Add方法用于添加定时任务,其中:

...

    • interval 参数用于指定方法的执行的时间间隔;

...

    • job 参数为需要执行的任务方法(方法地址);

...

  1. AddEntry方法添加定时任务,支持更多参数的控制;

...

  1. AddSingleton方法用于添加单例定时任务,即同时只能有一个该任务正在运行;

...

  1. AddOnce方法用于添加只运行一次的定时任务,当运行一次数后该定时任务自动销毁;

...

  1. AddTimes方法用于添加运行指定次数的定时任务,当运行times次数后该定时任务自动销毁;

...

  1. Search方法用于根据名称进行定时任务搜索(返回定时任务*Entry对象指针);

...

  1. Start方法用于启动定时器(使用New创建定时器时会自动启动);

...

  1. Stop方法用于停止定时器;

...

  1. Close方法用于关闭定时器;

时间轮设计