golang 时间轮_窗口时间

golang 时间轮_窗口时间timewheelGolang实现的时间轮,项目地址安装goget-ugithub.com/ouqiang/timewheel使用packagemainimport(“github.com/ouqiang/timewheel””time””fmt”)funcmain(){//tick刻度为1秒,3600个槽,执行的jobtw

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

timewheel

Golang实现的时间轮 项目地址

时间轮

原理

延迟消息的实现

安装

go get -u github.com/ouqiang/timewheel

使用

package main

import (
    "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{}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 创建自己的个人网站(一)

    创建自己的个人网站(一)在学习过程中,我们想要将自己的作品发布到网上,创建个人网站,以下是个人网站搭建的简单介绍。 (建议建站前,了解常用linux指令)步骤:1.注册域名     2.开通云服务器     3.搭建网站环境     4.发布网站内容     5.域名解析      6.完成ICP备案(本次仅介绍静态网站的搭建,动态网站后续文章详细介绍)1.注册域名  …

    2022年6月23日
    28
  • Xray简单使用「建议收藏」

    Xray简单使用「建议收藏」Xray简单使用教程0X00下载xray为单文件二进制文件,无依赖,也无需安装,下载后直接使用。下载地址为:Github:https://github.com/chaitin/xray/releases(国外速度快)网盘:https://yunpan.360.cn/surl_y3Gu6cugi8u(国内速度快)注意:不要直接clone仓库,xray并不开源,仓库内不含…

    2022年5月18日
    685
  • Ajax发送请求的四个步骤

    Ajax发送请求的四个步骤<scripttype=”text/javascript”> window.onload=function(){ varbtn=document.getElementById(‘btn’); btn.onclick=function(){ //使用Ajax发送请求需要如下几步 //1、创建XMLHttpRequest(); varxhr=…

    2022年5月17日
    45
  • Java动态拼接SQL–02–Jpa「建议收藏」

    Java动态拼接SQL–02–Jpa「建议收藏」本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一个系列来讲解mybatis,这个系列从mybatis的入门开始,到基本使用,和spring整合,和第

    2022年6月10日
    257
  • 【matlab】常用函数importdata

    importdata没有头文件并且全是数字用load,有头文件并且数据类型统一用importdata。查看帮助用helploadhelpimportdatadata.txt内容如下:a1a2a3b1b2b3123444656测试代码:delimiterIn=”;%字符分隔符headerlinesIn=2;%文件头的行数A=

    2022年4月9日
    55
  • 私有IP地址_ipv6私有地址

    私有IP地址_ipv6私有地址私有IP地址:在ABC三类网络中,如下三段网络地址为私有IP地址,如何人都可以自行在自己的局域网中使用这些IP地址.A类私有:10.0.0.110.255.255.254B类私有:172.16

    2022年8月5日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号