1. pink https://github.com/busgo/pink

2. crocodile https://github.com/labulaka521/crocodile

3. gopherCron https://github.com/holdno/gopherCron

4. gocron https://github.com/ouqiang/gocron

5. go-cron https://gitee.com/man0sions/go-cron

golang分布式定时任务调度器,支持秒级调度,master节点下发指令,worker节点处理任务
依赖etcd,mongodb

6. jiacrontab https://gitee.com/iwannay/jiacrontab

7. clock https://github.com/BruceDone/clock

8. PPGo_Job https://gitee.com/georgehao/PPGo_Job

9. gojob https://github.com/wj596/gojob

  • 极少依赖: 只依赖MySQL 数据库,分布式环境下使用内建的分布式协调机制,不需要安装第三方分布式协调服务,如Zookeeper、Etcd等;更少的依赖意味着后续需要更少的部署和运维成本。

  • 易部署:原生Native程序,无需安装运行时环境,如JDK、.net framework等;支持单机和集群部署两种部署模式。

  • 任务重试:支持自定义任务重试次数、重试时间间隔。当任务执行失败时,会按照固定的间隔时间进行重试。

  • 任务超时:支持自定义任务超时时间,当任务超时,会强制结束执行。

  • 失败转移:当任务在一个执行节点上执行失败,会转移到下一个可用执行节点上继续执行。如任务在节点A上执行失败,会转移到节点B上继续执行,如果失败会转移到节点C上继续执行,直到执行成功。

  • misfire补偿机制:由于调度服务器宕机、资源耗尽等原因致使任务错过激活时间,称之为哑火(misfire)。比如每天23点整生成日结报表,但是恰巧在23点前服务器宕机、此任务就错失了一次调度。如果我们设置了misfireThreshold为30分钟,如果服务器在23点30分之前恢复,调度器会进行一次执行,以补偿在23点整哑火的调度。

  • 负载均衡:如果集群节点为集群部署,调度服务器可以使用轮询、随机、加权轮询、加权随机等路由策略,为任务选择合适的执行节点。既可以保证执行节点高可用、我单点隐患,也可以将压力分散到不同的执行节点。

  • 任务分片:将大任务拆解为多个小任务均匀的散落在多个节点上并行执行,以协作的方式完成任务。比如订单核对业务,我们有天津、上海、重庆、河北、山西、辽宁、吉林、江苏、浙江、安徽十个省市的账单,如果数据量比较大,单机处理这些订单的核对业务显然不现实。

gojob可以将任务分为3片:执行节点1负责–>天津、上海、重庆、河北;执行节点2负责–>山西、辽宁、吉林; 执行节点13负责–>江苏、浙江、安徽。这样可以用3台机器来合力完成这个任务。如果你的机器足够,可以将任务分成更多片,用更多的机器来协同处理。

  • 弹性扩缩容:调度器会感知执行节点的增加和删除、上线和下线,并将执行节点的变化情况应用到下一次的负载均衡算法和任务分片算法中。支持动态的执行节点动态横向扩展,弹性伸缩整个系统的处理能力。

  • 调度唯一性:调度节点集群使用Raft算法进行主节点选举,一个集群中只存在一个主节点。任务在一个执行周期内,只会被主节点调用一次,保证调度的一致性。

  • 调度节点高可用:集群内通过Raft共识算法和数据快照将作业元数据实时进行同步,调度节点收到同步的数据后存在自己内建BoltDB存储引擎中;作业元数据具有强一致性和多副本存储的特性;任务可在任意调度节点被调度,调度节点之间可以无缝衔接,任何一个节点宕机另一个节点可以在毫秒计的时间内接替,保证调度节点无单点隐患。

  • 数据库节点高可用:由于作业元数据保存在节点自己的存储引擎中,MySQL数据库只用来保存调度日志。日志数据的特性使其可容忍短时间内不一致甚至丢失(虽然极少发生但理论上可容忍),因此将日志数据异步写入多库,无需对数据库做集群或者同步设置。极端情况下,数据库节点全部宕机都不会影响调度业务的正常运行,保证数据库节点无单点隐患。

  • 任务依赖:任务可以设置多个子任务,触发时机。如:任务执行结束触发子任务、任务执行成功触发子任务、任务执行失败触发子任。

  • 告警:支持邮件告警。任务调度失败会发送告警邮件到指定的邮箱,每个任务可配置多个告警邮箱。调度节点出现故障、数据库节点出现故障也会发送告警邮箱。

  • 数字签名:支持HMAC( 哈希消息认证码 )数字签名,调度节点和执行节点之间可以通过数字签名来确认身份。

10. https://github.com/v-mars/jobor

只依赖mysql,真正的的分布式

11.https://github.com/yohamta/dagu

12.https://github.com/fieldryand/goflow

13.https://github.com/tsundata/flowline

基于go语言的开源调度系统整理相关推荐

  1. c语言编写订货系统,学位论文_基于c语言的仓库订货系统的仿真.doc

    学位论文_基于c语言的仓库订货系统的仿真 本科毕业论文(设计.创作) 题目: 基于C语言的仓库订货系统的仿真 学生姓名: 学号: 所在系院: 信息与通信技术系 专业: 电子信息工程 入学时间: 201 ...

  2. Hadoop 开源调度系统zeus(二)

    紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一 ...

  3. c语言添加删除课程的思路,基于C语言实现学生选课系统

    基于C语言实现学生选课系统 发布时间:2020-09-03 11:41:13 来源:脚本之家 阅读:100 作者:xiaocaidayong 鉴于C语言实现的通讯录,为了巩固C语言的基础知识,试着写一 ...

  4. 基于Docker离线部署开源视频会议系统Jitsi-Meet

    基于Docker离线部署开源视频会议系统Jitsi-Meet 若有问题,欢迎交流! chungkou20@126.com

  5. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

  6. c语言编写订货系统,基于C语言的仓库订货系统的仿真.doc

    基于C语言的仓库订货系统的仿真 本科毕业论文(设计.创作) 题目: 基于C语言的仓库订货系统的仿真 学生姓名: 学号: 所在系院: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 ...

  7. c语言编写订货系统,基于C语言的仓库订货系统的仿真_图文.doc

    本科毕业论文(设计.创作) 题目: 基于C语言的仓库订货系统的仿真 学生姓名: 姜明 学号: 0321002013 所在系院: 信息与通信技术系 专业: 电子信息工程 入学时间: 2010 年 9 月 ...

  8. 毕业论文php企业站,毕业论文--基于PHP语言的企业CMS系统架设与维护

    毕业论文--基于PHP语言的企业CMS系统架设与维护 1 目录 摘要 2 第 1 章项目概述 . 3 1.1 项目目的 3 第 2 章背景技术介绍 4 2.1 PHP 语言 . 4 2.2 MySQL ...

  9. 可视化服务器集群管理与调度系统,一种基于Slurm作业管理的可视化调度系统技术方案...

    [技术实现步骤摘要] 一种基于Slurm作业管理的可视化调度系统 本专利技术涉及高性能集群作业调度领域,尤其涉及一种基于Slurm作业管理的可视化调度系统. 技术介绍 高性能计算集群是一组通过网络连接 ...

最新文章

  1. 杀死多余的ghost 的Android emulator-5554 offline 的方法总结
  2. Linux Shell脚本攻略学习总结:三
  3. .net中javascript去调用webservice
  4. Spring-jdbc-ConnectionHolder
  5. hardlockup的原理说明
  6. 没有wan接口_“伪千兆”路由器,快回家看看你家中招了没有?
  7. 2021软考软件设计师真题
  8. 关于MemoryBarrier
  9. java手游服务开发_jforgame,一个用java编写的轻量级手游服务端框架
  10. Cocos2d-x应用:保存背景音乐和音效设置
  11. 发送网页内容到onenote_如何直接在网页上做笔记并保存到 Onenote?
  12. CANoe操作介绍系列 ———— Analysi功能区中Graphic的介绍与使用
  13. 【面经攒人品】蚂蚁金服—反洗钱岗
  14. 读书笔记:《The Personal MBA/在家就能读 MBA》
  15. 区块链快速入门(六)——区块链密码学与安全相关技术
  16. c语言inv函数怎么用,1 怎样学习c语言
  17. Elasticsearch+IK+pinyin自定义分词器
  18. 网页版俄罗斯方块第2版
  19. Unix, Linux 和MacOS
  20. 基于LORA SX1278的温度监控控制系统开发设计-硬件方案设计

热门文章

  1. python中随机数的取法
  2. 商场里的导购图怎么制作?在商场内怎么导航?
  3. (Linux)make编译用法简述
  4. html5自动出现滚动条,关于HTML中的滚动条/去掉滚动条问题本
  5. 优派VX2778-2K-HD-2 评测
  6. 攻防世界miss_01
  7. Android应用源码基于vitamio的网络电视直播源码
  8. 网络之路--【第五章】——IP编址之VLSM
  9. iebook超级精灵—企业电子杂志(商刊)制作系统的领导品牌
  10. 计算机Logical_test公式,excel中if函数的logical_test是公式,怎么写if公式?