Gobrs-Async Gobrs-Async
🚘首页
🧧指南
🍭FAQ
💖支持
🚨加入群聊
🍅GitEE (opens new window)
GitHub (opens new window)
🚘首页
🧧指南
🍭FAQ
💖支持
🚨加入群聊
🍅GitEE (opens new window)
GitHub (opens new window)
  • 🥪项目特性

    • 🍿框架设计
  • 🎒框架设计

    • 🥧简介
    • 🍿框架设计
    • 🍍框架落地
  • 🍖快速开始

    • 🍔快速上手
    • 🌭框架集成
    • 🥤启动流程
    • 🍪流程参数
      • 🏝流程结果
    • 🥘规则配置

      • 🍅规则配置
    • 🥊任务类型

      • 🍅普通任务
      • 💥重试任务
      • ☄️事务任务
      • 🌈超时任务
      • ⛱方法任务
    • 🔥高级特性

      • 💐线程复用
      • 🧋运行日志
      • 🍜规则热更新
      • 🍑任务中断
      • 🌺可选子流程
      • 🌹状态流程
      • 🍒异常拦截
      • 🥪全局任务拦截
      • 🍏自定义线程池
      • 🍒可选的执行流程
    • 🚐插件

      • 🛻插件简介
      • 🏚监控系列

        • ⛽️skywalkiing
        • 🏖hippo4j
      • 🛸日志系列

        • 🚧全链路traceId
    • 🍿性能考量

      • 🍎框架压测
      • 🍹框架对比
      • 🧅版本号手册
    • 🌕展望

      • 🍊展望
    • 🍯联系作者

      • 🥐加群沟通
    目录

    🍪流程参数

    任务流程的params参数 有三种参数形式。

    • 统一上下文模式
    • 精确任务模式
    • Gobrs-Async提供参数封装

    注意

    任务的参数类型要跟 AsyncTask<Param,Result> 抽象父类中的 Param泛型保持一致,否则可能会出现匹配不成功现象。

    # 参数类型一

    如果任务流程中所有任务 都是用同一个参数进行传递传递(类似于DataContext 上下文), 则params 直接传入公用的同一个参数即可

    @Builder
    public static class DataContext {
        private String userName;
    
        private String password;
    
        private String address;
    }
        
    @Test
    public void caseParams1() {
        DataContext dataContext = DataContext.builder().userName("sizegang").password("1234").address("Beijing").build();
        long timeOut = 3000; //流程超时时间
        gobrsAsync.go("param", () -> dataContext, timeOut);
    }
    
    

    # 参数类型二

    如果任务流程中不同任务使用不同的参数。则参数需要传递Map类型, Map的key 为 任务bean 名称, 值为所需要传递的参数值。

    @Test
    public void caseParams2() {
        HashMap<Class<?>, Object> params = new HashMap<>();
        params.put(CaskParamTask.class, "CaskParamTask参数");
        gobrsAsync.go("param", () -> params);
    }
    

    # 参数类型三

    如果开发者对以上两种传参数方式使用不适,可以使用第三种方式。

    • 注意 1.3.1-RELEASE 提供该使用方式
    @Test
    public void caseParams3() {
        /**
         *  key 是 class类型
         */
        GobrsParamSupport paramSupport = GobrsParamSupport.create().putNext(CaskParamTask.class, "CaskParamTask的参数");
        gobrsAsync.go("param", () -> paramSupport);
    }
    

    上手快速通道:机票 (opens new window)

    Last Updated: 12/30/2022, 6:10:58 PM
    🥤启动流程
    🏝流程结果

    ← 🥤启动流程 🏝流程结果→

    最近更新
    更多文章>
    Gobrs-Async | Copyright © 2022-2023 Memorydoc | Apache License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式