ticker定时器:

摘要:
Ticker是周期性定时器,即周期性的触发一个事件,通过Ticker本身提供的管道将事件传递出去。每当乘客上车,select语句会先判断ticker.C中是否有数据,有数据则代表发车时间已到,如果没有数据,则判断车是否已坐满,坐满后仍然发车。总结Ticker相关内容总结如下:使用time.NewTicker()来创建一个定时器;使用Stop()来停止一个定时器;定时器使用完毕要释放,否则会产生资源泄露;

Ticker是周期性定时器,即周期性的触发一个事件,通过Ticker本身提供的管道将事件传递出去。

定时聚合任务

有时,我们希望把一些任务打包进行批量处理。比如,公交车发车场景:

  • 公交车每隔5分钟发一班,不管是否已坐满乘客;

  • 已坐满乘客情况下,不足5分钟也发车;

下面代码演示公交车发车场景:

// TickerLaunch用于演示ticker聚合任务用法
funcTickerLaunch(){
ticker :=time.NewTicker(5*time.Minute)
maxPassenger :=30// 每车最大装载人数
passengers :=make([]string,0,maxPassenger)
for{
passenger :=GetNewPassenger()// 获取一个新乘客
ifpassenger !=""{
passengers =append(passengers,passenger)
}else{
time.Sleep(1*time.Second)
}
select{
case<-ticker.C:// 时间到,发车
Launch(passengers)
passengers =[]string{}
default:
iflen(passengers)>=maxPassenger {// 时间没到,车已座满,发车
Launch(passengers)
passengers =[]string{}
}
}
}
}
上面代码中for循环负责接待乘客上车,并决定是否要发车。每当乘客上车,select语句会先判断ticker.C中是否有数据,有数据则代表发车时间已到,如果没有数据,则判断车是否已坐满,坐满后仍然发车。
总结

Ticker相关内容总结如下:

  • 使用time.NewTicker()来创建一个定时器;

  • 使用Stop()来停止一个定时器;

  • 定时器使用完毕要释放,否则会产生资源泄露;

免责声明:文章转载自《ticker定时器:》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇flutter 页面跳转1H3C配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

jmeter监控内存,CPU等方法

当然,我们也可以选择本地进程下的远程进程来获取服务器的内存使用情况和其他信息。在文本框中输入需要测试的服务器的IP地址:port,然后在下面输入用户名和密码。单击“连接”以查看发生的情况。...

移动通信网络中的 GTP 协议

在EPSUP中使用GTP的优点之一是GTP具有固有的可识别隧道机制和GTP可以为UE提供的移动性。注意:GTPv2-U协议不存在。GTP-C协议GTP-C是GTP的控制平面,使用UDP端口2123。在EPS中,GTPv2-C协议负责创建、维护和删除S1、S5/S8和其他接口上的GTP-U隧道。它是一种基于IP的隧道协议,允许在GTP UProtocolEnt...

Kafka监控工具——Kafka-Eagle

Kafka监控工具官网https://www.kafka-eagle.org/是什么KafkaEagle是一款用于监控和管理ApacheKafka的完全开源系统,目前托管在Github,由笔者和一些开源爱好者共同维护。而且,在使用消费者API时,尽量#客户端KafkaAPI版本和Kafka服务端的版本保持#一致性。...

PLSQL操作Oracle创建用户和表(含创建用户名和密码)

1》 打开PLSQL,填写用户名和密码,为数据库选择ORCL2,成功登录后可以在界面顶部看到以下信息system@ORCL这意味着用户系统处于登录状态。菜单栏中的会话可以登录和注销。...

db2数据导出导入del与ixf格式

ixf格式保存的是结构和数据,是一个二进制文件,ixf文件不可视。...

Oracle 12c新特性(For DBA)

2: Oracle12cIn-MemoryOracle12cIn-Memory提供了一种独特的双格式体系结构,它可以使用传统的行格式和新的内存列格式同时在内存中存储表。与其他NOSQL分片结构相比,OracleSharding提供了优异的运行时性能和更简单的生命周期管理。OracleSharding使用GDS体系结构自动部署和管理分片和复制技术。GDS还提供...