golang代码的实现 

       之前看过几篇文章讲解timewheel的,没有具体使用过,最近工作上遇到一个需求需要周期性的同步数据给第三方,周期是不固定,正好想到用这个东西来搞一搞(使用for循环感觉太low),顺便学习下。

这是timewheel的讲解的博客,写的很不错,看干货之前可以先补充下理论知识,O(∩_∩)O哈哈~

对时间轮的需求有以下几点

  1、支持多种任务回调

  2、任务执行次数可配置

  3、任务可更新

单轮多圈机制的timewheel的实现  https://github.com/nosixtools/timewheel

这是使用的例子,可以在添加任务的时候 指定回调函数,并可以指定任务的执行方式(周期执行或者指定次数执行)

尝试去做了多轮的实现,轮之前的切换成本感觉有点高,如果您有多轮需求,可以使用我的轮子,自己实例化多个不同时间周期的轮子就行了,欢迎批评指正!