开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
Hydra-Io首页、文档和下载 - Java 分布式作业流调度框架 - 开源中国社区
全部项目分类
我要评价
Apache
Java
跨平台
Norman.Dai
分享
收藏
5 人收藏
收录时间:2017-07-03
Hydra-Io 详细介绍

Java 分布式作业流调度框架 Hydra-Io

Hydra 是由 Java 实现的作业流调度框架,它可以支持复杂作业流的调度。

主要有以下特点:

1. 支持分布式作业分片

2. 支持本地并发执行

3. 支持复杂作业树(作业流) 

4. 实现业务代码和框架代码的解耦

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

选择将代码托管在码云
你还在等什么

可能是中国最大最好的代码托管平台


大家对 Hydra-Io 的评论 (全部 1 条评论)
{{repayCom.userName}}
老衲大海
国产开源作业调度工具TASKCTL已经开源,可关注:https://www.oschina.net/p/taskctl 了解更多。
顶部