全部产品

任务参数说明

更新时间:2020-01-10 17:33:57

新建任务时,需要按照界面提示输入任务信息,包括任务名称、调度类型、自定义参数等。本文将分别介绍以下任务的参数说明:

简单任务

简单任务适用于业务逻辑简单的场景。当需要并发执行并且不关注资源利用率时,可以使用简单任务的分片的功能;当需要分成若干步骤按顺序执行时,可以使用简单任务的分步功能。

属性
是否必填
说明
任务名称
用于识别任务,支持英文、中文、数字、下划线( ),也可直接使用执行器的名称(即代码中的任务处理器名称)。
应用名称
必须与工程中 application.properties 文件的 spring.application.name 配置的应用名称一致。支持英文、中文、数字、下划线( )、连字符(-)。
调度类型
  • Cron 表达式触发:定时触发,触发时间由 Cron 表达式定义。
  • 事件触发:通过外部事件进行触发,可以是 API 调用,也可以是拓扑图中的父节点驱动。
Cron 表达式
仅适用于使用 Cron 表达式触发的任务。详见 Cron 表达式说明
任务分组
以分组方式归纳任务。从列表中选择已有分组,或添加新分组。
执行器名称
必须与代码中的任务处理器名称一致。默认只有一个执行器。
支持将一个任务分为多个执行步骤,即添加多个执行器。客户端接收到执行请求后会按照步骤的顺序进行执行。
任务分片
选择是否在单个步骤中将数据拆分为多个分片,并分发到多台机器上调度执行。当不开启分片时,任务将只调度到一台客户端服务器上执行。默认不分片。
分片数量
当开启任务分片时,若设置了分片数量为 M,任务会同时触发到 M 台客户端服务器上进行执行。默认值为 2。
自定义参数
从控制台向任务传递参数,参数也可以在任务间传递。支持 STRING、INTEGER、BOOLEAN、LIST、PLACEHOLDER 类型的参数配置。详见 使用自定义参数
路由策略
  • 随机(默认)
  • 定向
  • 轮询
详见 路由策略
通信方式
  • 单向 ONEWAY(默认):单向操作,无返回值,控制台不记录触发记录。无超时,无重试。建议在高频非重要任务场景下使用。
  • 回调 CALLBACK:双向操作,有返回值,控制台可查看调度记录。可设置超时,可重试。建议在重要任务场景下使用,且触发间隔至少 5 分钟。
任务互斥
仅适用于通信方式为回调的任务。选择是否开启任务互斥模式。默认为否。 当开启任务互斥模式时(设置为 true),处在“执行中”或“暂停”状态的任务即使已经达到下一个任务触发时间点,仍无法再次触发。本次调度状态以“跳过”标记。
漏触发策略
仅适用于通信方式为回调的任务。
  • 忽略
  • 立即触发
  • 时间充裕时触发
详见 漏触发策略
超时策略
仅适用于通信方式为回调的任务。
  • 不处理
  • 按失败策略重试
  • 停止后续触发(仅适用于开启了任务互斥模式的简单任务)
详见 超时策略
超时时间
仅适用于通信方式为回调的任务。超过此时间未回调则认为执行失败。单位为分或小时。
失败处理策略
仅适用于通信方式为回调的任务。
  • 不重试
  • 最多重试 3 次
  • 重试到下次触发
优先级属性
用于标记任务的重要性等级,对任务的执行无实质影响。
  • 极高
  • 中等(默认)
  • 极低
描述
任务的详细描述,例如业务的含义、影响范围等。最大长度为 1024 个字符。

集群任务

集群任务支持对数据进行自定义维度的拆分,不限制拆分层数,可以充分利用集群的所有机器。当数据量较大时,集群任务可以更快的处理完数据。

属性
是否必填
说明
任务名称
用于识别任务,支持英文、中文、数字、下划线( ),也可直接使用执行器的名称(即代码中的任务处理器名称)。
应用名称
必须与工程中 application.properties 文件的 spring.application.name 配置的应用名称一致。支持英文、中文、数字、下划线( )、连字符(-)。
调度类型
  • Cron 表达式触发:定时触发,触发时间由 Cron 表达式定义。
  • 事件触发:通过外部事件进行触发,可以是 API 调用,也可以是拓扑图中的父节点驱动。
Cron 表达式
仅适用于使用 Cron 表达式触发的任务。详见 Cron 表达式说明
任务拆分
拆分处理器与执行处理器名称。必须与代码中的任务处理器名称一致。默认只有一个执行器。
任务分组
以分组方式归纳任务。从列表中选择已有分组,或添加新分组。
自定义参数
从控制台向任务传递参数,参数也可以在任务间传递。支持 STRING、INTEGER、BOOLEAN、LIST 类型的参数配置。详见 使用自定义参数
路由策略
  • 随机(默认)
  • 定向
  • 轮询
详见 路由策略
通信方式
  • 单向 ONEWAY(默认):单向操作,无返回值,控制台不记录触发记录。无超时,无重试。任务拆分结束后不上报拆分结果,直接下发到客户端集群去执行。建议在高频非重要任务场景下使用。本通信方式适用于 SOFABoot 2.5.3/3.0.2 及以上版本。
  • 回调 CALLBACK:双向操作,有返回值,控制台可查看调度记录。可设置超时,可重试。建议在重要任务场景下使用,且触发间隔至少 5 分钟。
任务互斥
选择是否开启任务互斥模式。默认为否。仅适用于通信方式为回调(CALLBACK)类型的任务。当开启任务互斥模式时(设置为 true),处在“执行中”或“暂停”状态的任务即使已经达到下一个任务触发时间点,仍无法再次触发。本次调度状态以“跳过”标记。
漏触发策略
  • 忽略
  • 立即触发
  • 时间充裕时触发
仅适用于通信方式为回调(CALLBACK)类型的任务,详见 漏触发策略
超时策略
  • 不处理
  • 停止后续触发(仅适用于开启了任务互斥模式的集群任务)
仅适用于通信方式为回调(CALLBACK)类型的任务,详见 超时策略
超时时间
超过此时间未回调则认为执行失败。单位为分或小时。
失败处理策略
  • 不重试
  • 最多重试 3 次
仅适用于通信方式为回调(CALLBACK)类型的任务,详见 失败处理策略
优先级属性
用于标记任务的重要性,对任务的执行无实质影响。
  • 极高
  • 中等(默认)
  • 极低
描述
任务的详细描述,例如业务的含义、影响范围等。最大长度为 1024 个字符。
单台机器最大处理速率
高级选项。单台客户端在单位时间内处理的最大数据量。默认为机器最大处理速率。单位为数据条数/秒。
单台并行执行索引块数量上限
高级选项。仅适用于通信方式为回调(CALLBACK)类型的任务。单台客户端最大并行索引块(chunk)数量。索引块指单个执行步骤中对任务进行拆分的数据分片。默认值为 5。
并行执行索引块数量上限
高级选项。仅适用于通信方式为回调(CALLBACK)类型的任务。集群最大并行索引块(chunk)数量。索引块在客户端平均分配。
假设单台并行索引块数量上限为 x, 集群并行执行索引块数量上限为 y,客户端数量为 m,则单台客户端实际最大并行索引块数量为 min(x, y/m)
单个分片处理失败跳过数据上限
高级选项。仅适用于通信方式为回调(CALLBACK)类型的任务。若单个分片处理失败,允许队列中后面 n 个数据被跳过。默认不跳过。

策略说明

路由策略

  • 随机:从订阅的客户端中随机选择一台作为目标机器执行任务。若执行失败进行重试,则重新随机选择目标机器。
  • 定向:将订阅的客户端按照 IP 地址排序,每次都挑选第一台机器作为目标机器。执行失败进行重试时仍会选择第一台机器。当第一台机器长连接断开后,会将该机器从列表中剔除,然后选择新的第一台机器。
  • 轮询:将连接到服务端的客户端按照 IP 进行排序,以任务的维度按顺序从客户端中选择一台作为目标机器。该方案不保证严格按照顺序执行,当客户端发生变化或服务端重启时之前的顺序会失效。执行失败进行重试时会按照规则重新选择目标机器。

漏触发策略

仅适用于通信方式为回调(CALLBACK)类型的任务。

  • 忽略:不进行补偿处理。
  • 立即触发:立即重新触发。
  • 时间充裕时触发:仅适用于使用 Cron 表达式触发的任务。是否进行补偿触发取决于下次触发前的剩余时间是否充裕。若 当前时间 + 超时时间 < 下次触发时间,则进行补偿触发,并将此次补偿触发插入触发记录。若时间不充裕,则不触发。多次漏触发进行恢复时仅进行一次补偿触发。

超时策略

仅适用于通信方式为回调(CALLBACK)类型的任务。

  • 不处理:触发记录和执行记录状态均标记为失败。
  • 按失败策略重试:不适用于集群任务。本次调度记录状态标为失败,并按照失败策略进行失败重试。重试后本次调度记录将被重置为重试结果。
  • 停止后续触发:仅适用于开启了任务互斥模式的简单任务或集群任务。执行记录状态为失败,触发记录状态为超时,并且无法再次触发。

失败处理策略

仅适用于通信方式为回调(CALLBACK)类型的任务。

  • 不重试:失败后不进行重试。
  • 最多重试三次:失败后立即进行重试,但最多重试三次。
  • 重试到下次触发:失败后立即进行重试,直到下次触发时间。