Java分布式作业流调度框架Hydra-Io
Hydra是由Java实现的作业流调度框架,它可以支持复杂作业流的调度。
主要有以下特点:1.支持分布式作业分片
2.支持本地并发执行
3.支持复杂作业树(作业流)
4.实现业务代码和框架代码的解耦
5.内部实现分布式调度,无需zookeeper等第三方分布式组件
6.抛弃传统的cro表达,采用简单易懂的作业配置
ote:目前Hydra-Io处于测试版本,暂没有在生产环境下运行的先例
计划:在1.0版本中将支持一下特性
1.同步支持zookeeper、Redis作为分布式组件
2.实现基于XML的作业配置
3.支持sprig
测试版体验:1.定义作业 testIvokeTask
@Task("testIvokeTask")public class TestIvokeTask { @Executor("executorA") @Expressio(strategy = ExpressioStrategyEum.TIMING, measure = ExpressioMeasureEum.MINUTE,factor = "15") @Distributed(strategy = DistributedStrategyEum.SHARDING,umber = 2) public Strig executorA(EvirometParams cotext){ Strig jobName = cotext.getJobName(); it ivokeIdex = cotext.getIvokeIdex(); Strig str = jobName + " - " + ivokeIdex + " ruig at " + ew Date(); System.out.pritl(str); retur str; } @Joi("testIvokeTask@executorA") @Executor("executorB") public Strig executorB(EvirometParams cotext, Strig values){ Strig jobName = cotext.getJobName(); it ivokeIdex = cotext.getIvokeIdex(); Strig str = jobName + " - " + ivokeIdex + " ruig at " + ew Date() + " param is:[" + values + " ]" ; System.out.pritl(str); retur jobName; } @Joi("testIvokeTask@executorB") @Executor("executorC") public Strig executorC(EvirometParams cotext, Strig values){ Strig jobName = cotext.getJobName(); it ivokeIdex = cotext.getIvokeIdex(); Strig str = jobName + " - " + ivokeIdex + " ruig at " + ew Date() + " param is:[" + values + " ]" ; System.out.pritl(str); retur jobName; } }注解说明:
执行作业:public class Mai { public static void mai(Strig[] strigs){ BatchSystem system = AotatioBatchSystem.getIstace().setScaPackage("com.xxxx.xxxx.test"); system.start(); }}
评论