新建拓扑任务

操作步骤

  1. 创建拓扑任务。

    1. 登录 SOFAStack 控制台

    2. 在左侧导航栏选择 中间件 > 任务调度 > 任务编排

    3. 单击 添加拓扑任务,然后配置以下参数:

      参数

      说明

      拓扑名称

      配置拓扑任务的名称。

      调度类型

      配置任务调度的类型,可选值:

      • cron 表达式触发:该类型的任务在创建时需要配置 CRON 表达式定时触发任务。

      • 事件触发:该类型的任务通过外部事件触发任务。

      Cron 表达式

      配置 CRON 表达式,用于定时触发任务。配置方式请参见 CRON 表达式详解

      仅在 调度类型cron 表达式触发 时配置。

      任务互斥

      选择是否开启任务互斥模式。开启任务互斥模式时,处在“执行中”或“暂停”状态的任务即使已经达到下一个任务触发时间点,仍无法再次触发。本次调度状态以“跳过”标记。

      漏触发策略

      设置任务漏触发时的处理策略,可选值:

      • 忽略:不进行补偿处理。

      • 立即触发:立即重新触发。

      仅当 调度类型 cron 表达式触发 时配置此项。

      自定义参数(可选)

      自定义参数支持从控制台向任务传递参数,参数也可以在任务间传递,格式为:key=value。参数配置说明如下:

      • 参数名:设置自定义参数的名称。

        支持英文大小写、数字、下划线(_), 不能超过 128 字符。

      • 类型 参数值:可选类型和参数值配置方式如下。

        • STRING:支持通用的字符串。

        • LIST:支持字符串数组,例如:["aaa","bbb"]

        • BOOLEAN:支持 true 或 false。

        • PLACEHOLDER:支持参数替换,目前支持的变量如下:

          • ${sharding}:替换当前分片值,配合简单任务使用。

          • ${shardingCount}:替换简单任务配置的分片数。

          • ${triggerTime}:替换预期的触发时间。

          说明

          您也可以在业务端通过上下文 context(该对象必须实现 Serializable。)获取和覆盖自定义参数。代码如下:

          public class SimpleTaskDemo implements ISimpleJobHandler {
          
              @Override
              public ClientCommonResult handle(JobExecuteContext context) {
                 // 根据 key 获取 obj
                  Object obj = context.getCustomParam("intObj");
          
                  // 获取自定义参数
                  Map<String, Object> paramsMap = context.getCustomParams();
                  context.putCustomParams("num", 2);
                  List<String> listparam = newArrayList <>();
                  listparam.add("aaaaaa");
                  listparam.add("111111");
                  context.putCustomParams("intparam", 111);
                  context.putCustomParams("stringparam", "dfadsfad1243");
                  context.putCustomParams("listparam", listparam);
                  // 注意对象必须实现 Serializable
                  context.putCustomParams("objectParam", newObject());
                  return ClientCommonResult.buildSuccessResult();
              }
          
          ....
          }

      描述(可选)

      配置任务的描述信息,例如业务含义、影响范围等,最多 1024 个字符。

  2. 编辑拓扑图。

    1. 单击 下一步,然后单击拓扑图中的加号(+)。Image 1

    2. 添加节点 面板添加网关、任务或拓扑子流程后,单击 确定

      • 网关节点 区域,选择要添加的网关类型。网关成对出现。

        • 并行网关:并行网关间的所有分支被同时执行。更多信息,请参见 并行网关

        • 条件网关:需要设置边条件,例如 isSuccess。拓扑执行时,将对该网关下的执行分支进行条件判断,判断结果为 true 的分支会被执行。更多信息,请参见 条件网关

        • 分片网关:需要设置分片规则。拓扑执行时会根据规则对任务数据进行拆分,生成需要执行的分片数。更多信息,请参见 分片网关

        注意

        如果您开启了 LDC 共享,且开启了跨 zone 调度,此处仅可以创建跨 zone 网关。详情请参见 跨 zone 网关

      • 任务列表 页签下,单击要添加的任务名称,即可添加该任务进入拓扑图。

      • 拓扑列表 页签下,单击要添加作为子拓扑的任务名称,即可添加该拓扑作为子流程。

    3. 单击目标节点,然后单击旁边的delete.png图标。

    4. 根据添加的节点配置事件,然后单击 确定

      事件详细介绍,请参见 拓扑执行事件

      • 对于条件网关,您还需要添加边条件。

      • 对于分片网关,您还需要添加分片规则。

    5. 单击 提交

  3. 在任务拓扑列表,将目标任务状态改为 启用