Golang实现的时间轮
来源:互联网 发布:sql数据库文件怎么打开 编辑:程序博客网 时间:2024/06/05 20:46
timewheel
Golang实现的时间轮 项目地址
原理
延迟消息的实现
安装
go get -u github.com/ouqiang/timewheel
使用
package mainimport ( "github.com/ouqiang/timewheel" "time")func main() { // 初始化时间轮 // 第一个参数为tick刻度, 即时间轮多久转动一次 // 第二个参数为时间轮槽slot数量 // 第三个参数为回调函数 tw := timewheel.New(1 * time.Second, 3600, func(data timewheel.TaskData) { // do something }) // 启动时间轮 tw.Start() // 添加定时器 // 第一个参数为延迟时间 // 第二个参数为定时器唯一标识, 删除定时器需传递此参数 // 第三个参数为用户自定义数据, 此参数将会传递给回调函数, 类型为map[interface{}] interface{} tw.AddTimer(5 * time.Second, conn, timewheel.TaskData{"uid" : 105626}) // 删除定时器, 参数为添加定时器传递的唯一标识 tw.RemoveTimer(conn) // 停止时间轮 tw.Stop() select{}}
阅读全文
0 0
- Golang实现的时间轮
- 用Golang实现基于时间轮算法的定时器
- golang的时间操作
- Golang 时间的处理
- golang time 时间的加减法
- GOLANG 实现的 fastcgi
- Golang实现的红黑树
- [Golang]golang中自动锁的实现
- golang的json的时间格式化解决方案
- golang 计算两个时间的时间差
- golang时间相关的用法总结
- golang积累-时间、时区、格式的使用
- Golang获取整点的时间戳
- golang 获取明天零点的时间戳
- Golang实现的Base64加密
- [Golang]简单的聊天室实现
- Golang简单的memcache实现
- Golang 实现简单的定时器
- PHP使用星号替代用户名手机和邮箱
- com.mysql.jdbc.Driver 问题
- #define命令的一些高级用法
- ESP8266模块SDK编程,连接未来之家服务器
- [LeetCode] Largest Divisible Subset
- Golang实现的时间轮
- uva839 Not so Mobile 递归
- 从数据库取出的Date类型的数据放入Map<String,Object>之前需要做的处理
- Spring提供RestTemplate用于访问Rest服务的客户端实践
- J2EE系列之Spring4学习笔记(十三)--Spring4整合Struts2和Hibernate4
- iOS 11 发布!巨大进步、里程碑式飞跃!
- 探索ReactNative应用
- 矩阵伪逆介绍及C++/OpenCV/Eigen的三种实现
- 微信小程序----实例源码大全下载