golang代码的实现
之前看过几篇文章讲解timewheel的,没有具体使用过,最近工作上遇到一个需求需要周期性的同步数据给第三方,周期是不固定,正好想到用这个东西来搞一搞(使用for循环感觉太low),顺便学习下。
这是timewheel的讲解的博客,写的很不错,看干货之前可以先补充下理论知识,O(∩_∩)O哈哈~
对时间轮的需求有以下几点
1、支持多种任务回调
2、任务执行次数可配置
3、任务可更新
单轮多圈机制的timewheel的实现 https://github.com/nosixtools/timewheel
这是使用的例子,可以在添加任务的时候 指定回调函数,并可以指定任务的执行方式(周期执行或者指定次数执行)
尝试去做了多轮的实现,轮之前的切换成本感觉有点高,如果您有多轮需求,可以使用我的轮子,自己实例化多个不同时间周期的轮子就行了,欢迎批评指正!