java scheduletask_GitHub - javaprober/uncode-schedule: 基于zookeeper+spring task的分布式任务调度组件,非常小巧,无需任何修改...

何哲
2023-12-01

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

 类似资料: