创新互联GoFrame教程:GoFrame gtimer-基本介绍

基本介绍

gtimer​是一个并发安全的高性能定时器,类似于Java的​Timer​。​gtimer​组件旧版本采用的是分层时间轮(​Hierarchical Timing Wheel​)设计,从GOframe v1.16版本开始,采用了优先级队列(​PriorityQueue​)实现。

创新互联建站是一家集网站建设,上街企业网站建设,上街品牌网站建设,网站定制,上街网站建设报价,网络营销,网络优化,上街网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

使用场景:

任何定时任务场景,大批量定时任务/延迟任务的场景,超时控制/频率控制的业务场景,对于定时时间准确度要求不高的业务场景。

注意事项:

  • 任何的定时任务都是有误差的,在定时间隔比较大,或者并发量大,负载较高的系统中尤其明显,具体请参考:https://github.com/golang/go/issues/14410
  • 定时间隔不会考虑任务的执行时间。例如,如果一项工作需要3分钟才能执行完成,并且计划每隔5分钟运行一次,那么每次任务之间只有2分钟的空闲时间。
  • 需要注意的是单例模式运行的定时任务,任务的执行时间会影响该任务下一次执行的开始时间。例如:一个每间隔1秒执行的任务,运行耗时为1秒,那么在第1秒开始运行后,下一次任务将会在第3秒开始执行。因为中间有一次运行检查时发现有当前任务正在进行,因此退出等待下一次执行检查。

使用方式:

import "github.com/gogf/gf/v2/os/gtimer"

接口文档:

https://pkg.go.dev/github.com/gogf/gf/v2/os/gtimer

简要说明:

  1. New​方法用于创建自定义的任务定时器对象,并可在创建时通过​interval​的​TimerOptions​参数指定定时器的最小​tick​时间间隔。
  2. Add​方法用于添加定时任务,其中:
    • interval ​参数用于指定方法的执行的时间间隔。
    • job ​参数为需要执行的任务方法。
  3. AddEntry​方法添加定时任务,支持更多参数的控制。
  4. AddSingleton​方法用于添加单例定时任务,即同时只能有一个该任务正在运行。
  5. AddOnce​方法用于添加只运行一次的定时任务,当运行一次数后该定时任务自动销毁。
  6. AddTimes​方法用于添加运行指定次数的定时任务,当运行​times​次数后该定时任务自动销毁。
  7. Search​方法用于根据名称进行定时任务搜索(返回定时任务​*Entry​对象指针)。
  8. Start​方法用于启动定时器(使用​New​创建定时器时会自动启动)。
  9. Stop​方法用于停止定时器。
  10. Close​方法用于关闭定时器。

默认定时器

大部分的场景下使用默认的定时器即可。使用​gtimer​的默认定时器时,默认的间隔时间为100ms,因此理论的时间间隔误差范围为0~100ms。可以使用以下两种方式修改默认的定时器参数:

  1. 使用启动参数
    • gf.gtimer.interval=50​: 修改默认的时间刻度为50毫秒
  2. 使用环境变量
    • GF_GTIMER_INTERVAL=50

当前题目:创新互联GoFrame教程:GoFrame gtimer-基本介绍
标题链接:http://www.shufengxianlan.com/qtweb/news10/246460.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联