之前看过几篇文章讲解timewheel的,没有具体使用过,最近工作上遇到一个需求需要周期性的同步数据给第三方,周期是不固定,正好想到用这个东西来搞一搞(使用for循环感觉太low),顺便学习下。
这是timewheel的讲解的博客,写的很不错,看干货之前可以先补充下理论知识,O(∩_∩)O哈哈~
https://www.cnblogs.com/zhongwencool/p/timing_wheel.html
参考了这个哥们的的实现
https://github.com/ouqiang/timewheel
这个哥们的实现不能满足下边两点
1.timewheel只能执行一种任务的回调
2.任务只能执行一次,不能自动周期性执行
自己学习后重新实现了部分代码
https://github.com/nosixtools/timewheel
这是使用的例子,可以在添加任务的时候 指定回调函数,并可以指定任务的执行方式(周期执行或者指定次数执行)
![](http://upload-images.jianshu.io/upload_images/2116753-6bb6aea0b53fc508.png)
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)