drumstick

Implement crond by Golang
https://github.com/openex27/drumstick


鼓槌(鸡腿),golang定时任务包

功能特性:

  • 1.提供时间补偿机制,避免周期任务调度中时间损耗累计导致的长期使用后产生任务滞后现象
  • 2.参数可传入自定义函数, 和变长自定义参数
  • 3.未完待续…

方法:

  • NewTask(time.Duration, function, …param) (*Task, error)

    • 创建任务对象,当周期时间小于等于0时返回错误,否则返回nil
    • task, err := drumstick.NewTask(2*time.Second, func1, “hello”, 1 ,2)
  • (*Task) Start()
    • 启动任务
    • task.Start()
  • (*Task) Stop()
    • 停止任务继续生产,即已经启动的任务不会被结束,而是关闭他的调度器不再生产新任务
    • task.Stop()
  • (*Task) Reset(time.Duration)
    • 更新指定任务的周期时间
    • task.Reset(1*time.Second)

示例:

package mainimport ("fmt""time"drum "github.com/openex27/drumstick"
)func sumEcho(s string, a, b int) {fmt.Printf("%s -> %d\n", s, a+b)
}func main() {task, err := drum.NewTask(2*time.Second, sumEcho, "hello", 1, 5)if err != nil {panic(err)}task.Start()time.Sleep(5 * time.Second)task.Reset(1 * time.Second)time.Sleep(5 * time.Second)task.Stop()time.Sleep(1 * time.Second)
}

实现了一个golang周期任务调度包相关推荐

  1. golang 导入自定义包_goLang引入自定义包的方法

    看完golang的基本语法后,为了模块化编程,试用了下golang的包管理,结果真踩了几个坑,总结一下吧. 一. 设置$GOPATH环境变量 golang和C或php不一样,不会自动查找当前路径下的文 ...

  2. eclipse创建第一个golang项目

    2019独角兽企业重金招聘Python工程师标准>>> 在上一篇安装完成了eclipse的golang插件后,接下来该开始咱们的第一个go项目了 1.在Eclipse中依次点击:Fi ...

  3. hadoop 依赖式job_每天一学:一个轻量级分布式任务调度框架 XXL-JOB

    概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 官方地址中文版:http://www.xux ...

  4. golang中的包管理工具——govendor和godep简单学习

    为什么用vendor目录 依赖问题 我们知道,一个工程稍大一点,通常会依赖各种各样的包.而Go使用统一的GOPATH管理依赖包,且每个包仅保留一个版本.而不同的依赖包由各自的版本工具独立管理,所以当所 ...

  5. 01_Go语言基础学习_Golang语言特性、环境搭建、第一个Go程序、包

    1. Golang语言特性: 垃圾回收: 1.内存自动回收,再也不需要开发人员管理内存: 2.开发人员专注业务实现,降低了心智负担 : 3.只需要new分配内存,不需要释放 天然并发: 1.从语言层面 ...

  6. golang语言的包依赖管理方式 综述

    引言: 一.GOPATH简介: 二.GOPATH 模式 - go get 三.GO VENDOR 模式 go vender 之 dep 一· 优势: 二· 操作使用 三· 问题 四.Go Module ...

  7. 简单强大的Python库:Schedule—实用的周期任务调度工具

    如果你想在Linux服务器上周期性地执行某个 Python 脚本,最出名的选择应该是 Crontab 脚本,但是 Crontab 具有以下缺点: 1.不方便执行秒级的任务. 2.当需要执行的定时任务有 ...

  8. 龙头股情绪周期教程php,《龙头股情绪周期教程》全集 第9讲:题材情绪周期反包阶段(低吸、反包板)...

    第六个阶段:反包 这个是什么意思,就是龙头的气节,龙头的最后一口气,就像刹车,一脚刹车踩下去总是有惯性的.龙头分歧之后,还有惯性的一个上涨,惯性的强弱和之前的速度是分不开的.也就是说反包的概率,以及反 ...

  9. 关于golang的time包总结

    目录 前言 time包详解 总结 前言 各种编程语言都少不了与时间有关的操作,因为很多判断都是基于时间,因此正确和方便的使用时间库就很重要额. golang提供了import "time&q ...

最新文章

  1. python适合做后端开发吗-python适合后端开发么
  2. Linux ibm mq 教程,IBM MQ 使用指南
  3. Django的mode的分组查询和聚合查询和F查询和Q查询
  4. Android通过透明度设置背景变暗
  5. 数学中不可能实现的图形
  6. CSDN-markdown编辑器的使用方法
  7. Linux 使用grep过滤多个条件及grep常用过滤命令
  8. 懂分析、会预测,你见过这样的华为云DAS吗?
  9. 上海高考女生计算机专业,@2020高考:女生最多的15个专业,一辈子的好友就在这里...
  10. 可视化Python编译软件:GUI2Exe
  11. Android Fragment 真正彻底的解决(下一个)
  12. dataguard如何实现切换_ORACLE dataguard 切换
  13. 南阳oj-----汉诺塔(三)(stack)
  14. C# 怎么生成DLL文件(转)
  15. python批量转换图片格式_利用Python批量把PDF文件文件转换成图片格式
  16. excel表格快捷键
  17. 不合适学计算机的人,想学计算机,这三类人并不合适!
  18. Qt操作Word文档
  19. 电子计算机快速算法,序列产生的快速算法
  20. 定义申请OMA LwM2M Model Object

热门文章

  1. 基于华为云原生数据湖MRS HetuEgine的数据虚拟化实践
  2. ABAP SY-SUBRC含义
  3. 城市空气质量分析与预测
  4. 【Machine Learning, Coursera】机器学习Week6 偏斜数据集的处理
  5. 自行车LED灯导航仪推出 配自行车专用地图
  6. 关闭占用端口号的程序
  7. 追踪社保基金操盘者的足迹
  8. createjs开发教程
  9. 关于微软鼠标和键盘中心安装报错1603的解决方法
  10. 第四范式业界首推免费智能客服服务