JAVA集群调度系统 Cuckoo-Schedule

Apache
Java
跨平台
2017-05-07
卡拉喵喵

Cuckoo-Schedule是基于Quartz-Schedule的轻量级任务调度框架,具有易学习、易上手、开发高效稳定的特点。Demo地址:http://cuckoo.hellosr.com。      

Cuckoo-Schedule对调度模块与执行模块进行解耦,调度模块支持集部署、任务分组、任务依赖、权限管理、邮件告警、调度日志记录等功能,并提供WEB页面对任务进行管理,支持任务实时调度情况的查看、变更以及任务手动执行回溯、暂停等管理功能。执行模块支持客户端切面、脚本代码,实现客户端任务的零代码侵入。

整体架构

功能特性 

调度集群 

Cuckoo-Schedule的分布式策略是以数据库作为边界资源的并发策略,每个集群节点遵守相同的调度规范,集群节点可动态扩容、删除。 

任务依赖 

Cuckoo-Schedule支持任务的依赖于触发,从而使得任务执行有先后顺序。任务可以定时触发,也可以通过上级任务触发。同时一个任务的执行可以依赖多个任务的完成状态。 

任务分类 

Cuckoo-Schedule既可以支持日切任务(每日执行任务),有可以支持数据流任务(按时间间隔执行),日切任务依赖组执行的日切业务时间在执行时保持一致,数据流任务依赖住执行的数据开始时间戳和结束时间戳保持一致。 

例如: 

有任务A/B/C任务,如果依赖组是日切任务,那么这三个任务有相同的业务执行日期。如果依赖组是数据流任务,那么这三个任务有相同的开始时间戳和结束时间戳。 

任务分片 

针对数据量超大的任务,需要制定分片策略,将任务拆解成多个小任务通过不同的客户端执行,达到提供任务调度速率的目标。Cuckoo-Schedule可以针对任务层级设置任务执行参数,作为参数传递给客户端并进行任务分片执行。 

任务执行查看 

Cuckoo-Schedule支持任务执行日志情况查看,也支持任务执行依赖关系执行情况查看,便于任务执行异常情况下排查问题原因。 

任务重跑

当任务执行失败后,支持手工对任务进行重跑操作,重跑是可以选择是否执行触发任务。 

任务暂停 

当客户端某个系统需要上线或者重启操作时,可以通过控制台手工暂停客户端任务的调度,避免由于服务重启的情况下,造成任务失败。

任务告警 

由于客户端系统上线、服务宕机、网络波动等问题会造成任务执行过程中的中断、超时等情况,Cuckoo-Schedule可以设置告警邮件接收列表,以及任务层级设定告警超时提醒时间。

任务配置 

任务配置支持管理界面进行配置,也支持通过SQL的形式将任务导入。通过这两种方式,可以做到,在开发环境通过页面配置任务,在测试与线上环境是,通过将开发环境配置好的SQL导入到系统中。保证各个环境任务一直,避免人工操作造成的不一致情况发生。 

客户端分类 

客户端通过appName区分不同的客户端类型,不同的定时任务由不同类型的客户端执行。有助于在微(多)服务架构中,各个服务执行自己的任务。 

客户端切面 

在支持Spring的客户端服务中,可以通过引入Cuckoo-Client配置,通过注解的形式织入Cuckoo任务调度逻辑,开发简单易上手。 

客户端脚本任务 

Cuckoo-Schedule支持执行各类脚本,例如:shell、python、node、perl、curl等 

的码云指数为
超过 的项目
加载中

评论(3)

老衲大海
国产开源作业调度工具TASKCTL已经开源,可关注:https://www.oschina.net/p/taskctl 了解更多。
MartinBockZhu
MartinBockZhu
mark
卡拉喵喵
卡拉喵喵 软件作者
自赞

暂无资讯

暂无问答

如何找SSDT中精准的

我们可以通过枚举ntdll.dll的导出函数来间接枚举SSDT所有表项所对应的函数,因为所有的内核服务函数对应于ntdll.dll的同名函数都是这样开头的: 汇编代码 mov eax, <ServiceIndex> 对应的机器...

2018/08/24 17:35
28
0
GitHub上最热门的11款开源安全工具

恶意软件分析、渗透测试、计算机取证——GitHub托管着一系列引人注目的安全工具、足以应对各类规模下计算环境的实际需求。 作为开源开发领域的基石,“所有漏洞皆属浅表”已经成为一条著名的...

2016/01/28 15:57
98
1
Hacking Team恶意程序被发现使用开源代码

安全研究员Collin Mulliner在其博客上披露,意大利公司Hacking Team未经许可就使用了他的开源工具——如Android Dynamic Binary Instrumentation ——去开发产品监视活动人士,他感到生气和伤...

2016/07/29 15:42
10
0
iHooKing(inline内联Hook之王)

架构: 1.inline hooKing: a.任意地址hook,不影响稳定 b.跨平台 2.winHooking: a.接管windows所有dll及其导出函数 b.和inline hooKing形成有效互动 c.可衍生出linuxHooKing和androidHook...

2018/04/28 14:28
16
0
nodejs定时任务node-schedule

还是node-schedule好用,later连hello都跑不起来。。。 :)

2015/12/07 17:57
733
0
cocos2d-x 真正的定时器之schedule

在游戏设计时,我们需要不断的改变屏幕显示来反映游戏操作的效果,最简单的就是提示用户已经进行的游戏时间。为此,我们需要使用cocos2d-x内置的任务调度机制,即CCNode的schedule成员函数。...

2014/06/09 20:13
1K
0
nodejs 轮询

node.js定时任务:node-schedule的使用

2016/05/10 15:01
62
2
node.js定时任务:node-schedule的使用

##安装 npm install node-schedule ## 使用方法 ### 1:确定时间 ``` 例如:2014年2月14日,15:40执行 var schedule = require("node-schedule"); var date = new Date(2014,2,14,15,40,0);...

2016/06/21 18:32
51
0
delphi字符串数据结构逆向

为了验证设计可行性,一般我会先快速建模,用delphi实验一下,因为VCL和编译器以及OO的思想使得模型实现起来非常快,尤其自带基础类型String非常好用而且速度极快,但是源码里是看不到的,编...

2018/11/30 10:33
12
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部