<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Hydra-IoJava 分布式作業(yè)流調(diào)度框架

          聯(lián)合創(chuàng)作 · 2023-09-29 14:59

          Java 分布式作業(yè)流調(diào)度框架 Hydra-Io

          Hydra 是由 Java 實現(xiàn)的作業(yè)流調(diào)度框架,它可以支持復(fù)雜作業(yè)流的調(diào)度。

          主要有以下特點:

          1. 支持分布式作業(yè)分片

          2. 支持本地并發(fā)執(zhí)行

          3. 支持復(fù)雜作業(yè)樹(作業(yè)流) 

          4. 實現(xiàn)業(yè)務(wù)代碼和框架代碼的解耦

          5. 內(nèi)部實現(xiàn)分布式調(diào)度,無需zookeeper等第三方分布式組件

          6. 拋棄傳統(tǒng)的cron表達,采用簡單易懂的作業(yè)配置

          note: 目前Hydra-Io 處于測試版本,暫沒有在生產(chǎn)環(huán)境下運行的先例

          計劃:

          在1.0 版本中 將支持一下特性

          1. 同步支持zookeeper 、Redis 作為分布式組件

          2. 實現(xiàn)基于XML的作業(yè)配置

          3. 支持spring

          測試版體驗:

          1.定義作業(yè) 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;
             }
             }

          注解說明:


          執(zhí)行作業(yè):

          public class Main {
          
              public static void main(String[] strings){
                  BatchSystem system = AnnotationBatchSystem.getInstance().setScanPackage("com.xxxx.xxxx.test");
                  system.start();
              }
          
          }
          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.樱桃视频 | 北条麻纪无码中文字幕 | 亚洲第一色情网站 | 色婷婷粉嫩精品综合在线 | 超碰人人人人操 |