uncode-schedule是一个基于zookeeper的分布式任务调度组件,非常小巧,使用简单,只需要引入jar包,不需要单独部署服务端。确保所有任务在集群中不重复,不遗漏的执行。支持动态添加和删除任务。
功能概述
1、基于zookeeper+spring task/quartz/uncode task的分布任务调度系统。
2、确保每个任务在集群中不同节点上不重复的执行。
3、单个任务节点故障时自动转移到其他任务节点继续执行。
4、任务节点启动时必须保证zookeeper可用,任务节点运行期zookeeper集群不可用时任务节点保持可用前状态运行,zookeeper集群恢复正常运期。
5、支持动态添加、修改和删除任务,支持任务暂停和重新启动。
6、添加ip黑名单,过滤不需要执行任务的节点。
7、后台管理和任务执行监控。
8、支持spring-boot,支持单个任务运行多个实例(使用扩展后缀)。
说明:
单节点故障时需要业务保障数据完整性或幂等性
v1.1.0
更新内容
为感谢大家的厚爱,现新增分布式任务功能。该组件一直坚持小巧、精悍、使用简单,目前还是保持一个jar包。分布式任务整体流程为:先由任务主节点(或主线程)调用before方未能获取任务所需要的数据;然后由主节点分配指定数量的线程执行running任务,线程会自动分配到集群多个任务节点上;最后等所有running任务节点执行完成后,由主节点(或主线程)调用after方法。具体使用方式如下:
1、建议所有方法在同一个spring bean中;
2、before方法用于取得任务所需要的数据,无参且返回值必须为list类型;
3、running方法为任务目标方法,必须带唯一string类型参数,无返回值。当前任务数据以json串通过该String参数传入方法内部;
4、集群所有running方法执行完成后调用after方法,该方法无参无返回值。
|