Uncode-Schedule 分布式任务调度组件开源项目

我要开发同款
匿名用户2015年05月29日
96阅读

技术信息

开源地址
https://gitee.com/uncode/uncode-schedule
授权协议
GPLv2

作品详情

基于zookeeper+sprigtask/quartz的分布式任务调度组件,确保所有任务在集群中不重复,不遗漏的执行。支持动态添加和删除任务。

功能概述基于zookeeper+sprigtask/quartz的分布任务调度系统。确保每个任务在集群中不同节点上不重复的执行。单个任务节点故障时自动转移到其他任务节点继续执行。任务节点启动时必须保证zookeeper可用,任务节点运行期zookeeper集群不可用时任务节点保持可用前状态运行,zookeeper集群恢复正常运期。支持动态添加和删除任务。添加ip黑名单,过滤不需要执行任务的节点。简单管理后台说明:

单节点故障时需要业务保障数据完整性或幂等性具体使用方式和sprigtask相同k模块架构 

Ucode-ScheduleSprigbeapublicclassSimpleTask{privatestaticiti=0;publicvoidprit(){System.out.pritl("===========start!=========");System.out.pritl("I:"+i);i++;System.out.pritl("===========ed!=========");}}xml配置<!--分布式任务管理器--><beaid="zkScheduleMaager"class="c.ucode.schedule.ZKScheduleMaager"iit-method="iit"><propertyame="zkCofig"><map><etrykey="zkCoectStrig"value="127.0.0.1:2181"/><etrykey="rootPath"value="/ucode/schedule"/><etrykey="zkSessioTimeout"value="60000"/><etrykey="userName"value="ScheduleAdmi"/><etrykey="password"value="password"/><etrykey="isCheckParetPath"value="true"/><etrykey="ipBlacklist"value="127.0.0.2,127.0.0.3"/></map></property></bea>API1动态添加任务

CosoleMaager.addScheduleTask(TaskDefietaskDefie);

2动态删除任务

CosoleMaager.delScheduleTask(StrigtargetBea,StrigtargetMethod);

3查询任务列表

CosoleMaager.queryScheduleTask();

基于SprigTask的XML配置XML方式1Sprigbea

publicclassSimpleTask{privatestaticiti=0;publicvoidprit(){System.out.pritl("===========start!=========");System.out.pritl("I:"+i);i++;System.out.pritl("===========ed!=========");}}2xml配置

<!--分布式任务管理器--><beaid="zkScheduleMaager"class="c.ucode.schedule.ZKScheduleMaager"iit-method="iit"><propertyame="zkCofig"><map><etrykey="zkCoectStrig"value="127.0.0.1:2181"/><etrykey="rootPath"value="/ucode/schedule"/><etrykey="zkSessioTimeout"value="60000"/><etrykey="userName"value="ScheduleAdmi"/><etrykey="password"value="password"/><etrykey="isCheckParetPath"value="true"/><etrykey="ipBlacklist"value="127.0.0.2,127.0.0.3"/></map></property></bea><!--Sprigbea配置--><beaid="taskObj"class="c.ucode.schedule.SimpleTask"/><!--Sprigtask配置--><task:scheduled-tasksscheduler="zkScheduleMaager"><task:scheduledref="taskObj"method="prit"fixed-rate="5000"/></task:scheduled-tasks>Aotatio方式1Sprigbea

@CompoetpublicclassSimpleTask{privatestaticiti=0;@Scheduled(fixedDelay=1000)publicvoidprit(){System.out.pritl("===========start!=========");System.out.pritl("I:"+i);i++;System.out.pritl("===========ed!=========");}}2xml配置

<!--配置注解扫描--><cotext:aotatio-cofig/><!--自动扫描的包名--><cotext:compoet-scabase-package="c.ucode.schedule"/><!--分布式任务管理器--><beaid="zkScheduleMaager"class="c.ucode.schedule.ZKScheduleMaager"iit-method="iit"><propertyame="zkCofig"><map><etrykey="zkCoectStrig"value="127.0.0.1:2181"/><etrykey="rootPath"value="/ucode/schedule"/><etrykey="zkSessioTimeout"value="60000"/><etrykey="userName"value="ScheduleAdmi"/><etrykey="password"value="password"/><etrykey="isCheckParetPath"value="true"/><etrykey="ipBlacklist"value="127.0.0.2,127.0.0.3"/></map></property></bea><!--Sprig定时器注解开关--><task:aotatio-drivescheduler="zkScheduleMaager"/>基于Quartz的XML配置注意:sprig的MethodIvokigJobDetailFactoryBea改成c.ucode.schedule.quartz.MethodIvokigJobDetailFactoryBea<beaid="zkScheduleMaager"class="c.ucode.schedule.ZKScheduleMaager"iit-method="iit"><propertyame="zkCofig"><map><etrykey="zkCoectStrig"value="183.131.76.147:2181"/><etrykey="rootPath"value="/ucode/schedule"/><etrykey="zkSessioTimeout"value="60000"/><etrykey="userName"value="ScheduleAdmi"/><etrykey="password"value="password"/><etrykey="autoRegisterTask"value="true"/><etrykey="ipBlacklist"value="127.0.0.2,127.0.0.3"/></map></property></bea><beaid="taskObj"class="c.ucode.schedule.SimpleTask"/><!--定义调用对象和调用对象的方法--><beaid="jobtask"class="c.ucode.schedule.quartz.MethodIvokigJobDetailFactoryBea"><!--调用的类--><propertyame="targetObject"ref="taskObj"/><!--调用类中的方法--><propertyame="targetMethod"value="prit"/></bea><!--定义触发时间--><beaid="doTime"class="org.sprigframework.schedulig.quartz.CroTriggerFactoryBea"><propertyame="jobDetail"><refbea="jobtask"/></property><!--cro表达式--><propertyame="croExpressio"><value>0/3****?</value></property></bea><!--总管理类如果将lazy-iit='false'那么容器启动就会执行调度程序--><beaid="startQuertz"lazy-iit="false"autowire="o"class="org.sprigframework.schedulig.quartz.SchedulerFactoryBea"><propertyame="triggers"><list><refbea="doTime"/></list></property></bea>ucode-schedule管理后台访问URL:项目名称/ucode/schedule

大家都在使用ucode-schedule快速递优酷更多关于作者:冶卫军

功能介绍

基于zookeeper+spring task/quartz的分布式任务调度组件,确保所有任务在集群中不重复,不遗漏的执行。支持动态添加和删除任务。 功能概述 基于zookeeper+sprin...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论