...
...
gtimer
属于高性能模块,是框架核心模块,构建任何定时任务的基础,任何方法操作耗时均在纳秒
级别。gtimer
可适用于任何的定时任务场景中,例如: TCP通信、游戏开发等场景。gcron
支持经典的crontab
形式的定时任务语法,最小时间设定间隔为秒
。gcron
底层实现基于gtimer
。
注意事项:
- 任何的定时任务都是有误差的,在时间轮刻度比较大,或者并发量大,负载较高的系统中尤其明显,具体请参考:https://github.com/golang/go/issues/14410
- 定时间隔不会考虑任务的执行时间。例如,如果一项工作需要3分钟才能执行完成,并且计划每隔5分钟运行一次,那么每次任务之间只有2分钟的空闲时间。
- 需要注意的是单例模式运行的定时任务,任务的执行时间会影响该任务下一次执行的开始时间。例如:一个每秒执行的任务,运行耗时为1秒,那么在第1秒开始运行后,下一次任务将会在第3秒开始执行。
...
...
...
...
...
...
...
...
...
...
...
...
...
...
时间轮设计
...