Hydra-Io Java 分布式作业流调度框架 Hydra-Io 介绍
Java 分布式作业流调度框架 Hydra-Io
Hydra 是由 Java 实现的作业流调度框架,它可以支持复杂作业流的调度。
1. 支持分布式作业分片
2. 支持本地并发执行
3. 支持复杂作业树(作业流)
5. 内部实现分布式调度,无需zookeeper等第三方分布式组件
6. 抛弃传统的cron表达,采用简单易懂的作业配置
note: 目前Hydra-Io 处于测试版本,暂没有在生产环境下运行的先例
在1.0 版本中 将支持一下特性
1. 同步支持zookeeper 、Redis 作为分布式组件
2. 实现基于XML的作业配置
3. 支持spring
1.定义作业 testInvokeTask
@Task("testInvokeTask") public class TestInvokeTask { @Executor("executorA") @Expression(strategy = ExpressionStrategyEnum.TIMING, measure = ExpressionMeasureEnum.MINUTE,factor = "15") @distributed(strategy = distributedStrategyEnum.SHARDING,number = 2) public String executorA(EnvironmentParams context){ String jobName = context.getJobName(); int invokeIndex = context.getInvokeIndex(); String str = jobName + " - " + invokeIndex + " running at " + new Date(); System.out.println(str); return str; } @Join("testInvokeTask@executorA") @Executor("executorB") public String executorB(EnvironmentParams context, String values){ String jobName = context.getJobName(); int invokeIndex = context.getInvokeIndex(); String str = jobName + " - " + invokeIndex + " running at " + new Date() + " param is:[" + values + " ]" ; System.out.println(str); return jobName; } @Join("testInvokeTask@executorB") @Executor("executorC") public String executorC(EnvironmentParams context, String values){ String jobName = context.getJobName(); int invokeIndex = context.getInvokeIndex(); String str = jobName + " - " + invokeIndex + " running at " + new Date() + " param is:[" + values + " ]" ; System.out.println(str); return jobName; } }
注解说明:
public class Main { public static void main(String[] strings){ BatchSystem system = AnnotationBatchSystem.getInstance().setScanPackage("com.xxxx.xxxx.test"); system.start(); } }
Hydra-Io Java 分布式作业流调度框架 Hydra-Io 官网
https://github.com/NormanDai/Hydra-IO
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。