# uncode-schedule
**Repository Path**: smiven/uncode-schedule
## Basic Information
- **Project Name**: uncode-schedule
- **Description**: 基于zookeeper+quartz/spring task的分布式任务调度组件
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: http://www.uncode.cn
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 401
- **Created**: 2016-04-21
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# uncode-schedule
基于zookeeper+spring task/quartz的分布式任务调度组件,确保所有任务在集群中不重复,不遗漏的执行。支持动态添加和删除任务。
# 功能概述
1. 基于zookeeper+spring task/quartz的分布任务调度系统。
2. 确保每个任务在集群中不同节点上不重复的执行。
3. 单个任务节点故障时自动转移到其他任务节点继续执行。
4. 任务节点启动时必须保证zookeeper可用,任务节点运行期zookeeper集群不可用时任务节点保持可用前状态运行,zookeeper集群恢复正常运期。
5. 支持动态添加和删除任务。
6. 添加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配置
	
	
		
			   
		
	
	
## 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配置
	
	
		
			   
		
	
	
	
	
	
		
	
	
------------------------------------------------------------------------
## 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配置
	
    
	
    
	
	
		
			   
		
	
	
	
	
------------------------------------------------------------------------
# 基于Quartz的XML配置
	注意:spring的MethodInvokingJobDetailFactoryBean改成cn.uncode.schedule.quartz.MethodInvokingJobDetailFactoryBean
	
	
		
			   
		
		
	
	
	
		
		
		
		
	
	
	
		
			
				
------------------------------------------------------------------------
# 版权
作者:juny(ywj_316@qq.com)
技术支持QQ群:47306892
Copyright 2013 www.uncode.cn