uncode-schedule
基于zookeeper+spring task/quartz的分布式任务调度组件,确保所有任务在集群中不重复,不遗漏的执行。支持动态添加和删除任务。
功能概述
基于zookeeper+spring task/quartz的分布任务调度系统。
确保每个任务在集群中不同节点上不重复的执行。
单个任务节点故障时自动转移到其他任务节点继续执行。
任务节点启动时必须保证zookeeper可用,任务节点运行期zookeeper集群不可用时任务节点保持可用前状态运行,zookeeper集群恢复正常运期。
支持动态添加和删除任务。
添加ip黑名单,过滤不需要执行任务的节点。
简单管理后台
说明:
单节点故障时需要业务保障数据完整性或幂等性
具体使用方式和spring task相同
Uncode-Schedule
Spring bean
public class SimpleTask {
private static int i = 0;
public void print() {
System.out.println("===========start!=========");
System.out.println("I:"+i);i++;
System.out.println("=========== end !=========");
}
}
xml配置
init-method="init">
API
1 动态添加任务
ConsoleManager.addScheduleTask(TaskDefine taskDefine);
2 动态删除任务
ConsoleManager.delScheduleTask(String targetBean, String targetMethod);
3 查询任务列表
ConsoleManager.queryScheduleTask();
基于Spring Task的XML配置
XML方式
1 Spring bean
public class SimpleTask {
private static int i = 0;
public void print() {
System.out.println("===========start!=========");
System.out.println("I:"+i);i++;
System.out.println("=========== end !=========");
}
}
2 xml配置
init-method="init">
Annotation方式
1 Spring bean
@Component
public class SimpleTask {
private static int i = 0;
@Scheduled(fixedDelay = 1000)
public void print() {
System.out.println("===========start!=========");
System.out.println("I:"+i);i++;
System.out.println("=========== end !=========");
}
}
2 xml配置
init-method="init">
基于Quartz的XML配置
注意:spring的MethodInvokingJobDetailFactoryBean改成cn.uncode.schedule.quartz.MethodInvokingJobDetailFactoryBean
init-method="init">
0/3 * * * * ?
管理后台
UncodeScheduleManager
cn.uncode.schedule.web.ManagerServlet
UncodeScheduleManager
/uncode/schedule
版权
技术支持QQ群:47306892
Copyright 2013 www.uncode.cn