队列调度
队列调度
队列调度是一种自动化任务管理方式之一,通过监控数据队列中的新项目来触发自动化流程。它能够动态、实时地响应新任务的添加,提高系统的灵活性和处理效率。
配置队列调度
基础信息:
- 基础内容- 包含调度名称、调度流程、流程版本、分配使用者和优先级设置
- 执行目标- 选择部门机器人或候选机器人
部门机器人:动态分配选定流程的对应部门里中空闲的后台机器人
注意
此选项使您可以最大程度地利用资源。一旦机器人变为空闲状态,它就会根据提供的调度执行指 示的流程。
候选机器人:指定分配选定流程的对应部门里中的后台机器人
注意
如果该部门中的后台机器人处于非激活状态(未登录过),则无法进行分配。 在选择执行目标时,需要首先确定流程,因为机器人是与流程的部门绑定的。
- 运行参数- 任务执行选定流程时所需的输入数据和配置选项
- 等待超时时间- 设置选定流程在派发任务时等待的超时时间;如果任务在“等待运行”状态下超过设置时间后,任务状态将变为“等待超时”
- 人工执行耗时- 输入人工操作选定流程需要的实际时间。用于统计分析
- 自动停止时长- 设置当执行选定流程任务时,任务运行超过设置当时间,该任务将自动运行
队列信息:
- 队列名称- 选择关联的队列空间,支持新增
注意
队列空间需要一一对应选择的调度。
- 触发规则- 配置每当收到队列数A据时,生成任务的条件
- 触发生成一条任务的最小数据项数:设置队列中生成最小数据项数后,自动生成一条任务。如设置为5条数据项,则当队列中的新建状态数据项数小于 5条时,则不触发生成,只有大于等于5条时才会生成;
- 时间选择:每日执行、工作日执行、非工作执行;
注意
选择每日执行时,无法选择日历;
选择工作日执行、非工作日执行,可选择、配置日历。
- 开启日历更新:当日历更新后,历史设置的调度任务会按照更新过后的日历进行执行。开启后不可设置例外时间;
- 在此时间后停止调度:指从设置的时间停止调度,例如,如果设置从2024年8月31日停止处理“订单”文件数据提取;
- 允许同时等待和运行的最大任务数:系统允许同时等待和执行状态的任务的最大数量(一起计算);
- 每次调度生成任务数:调度后产生的任务数量;
- 失败重试次数:设置调度任务重新派发的次数,服务器接收到调度任务执行失败的消息就重新派发一次任务;
- 失败重试间隔时长:设置任务失败后的重试间隔时长,需要先设置重试失败次数。
队列触发器处理算法
- 队列中可用的数据项数:N
- 触发一个调度所需的最小数据项数:X
- 每新增X个新数据项,才会触发对应调度
- 每次调度生成任务数:E
- 每触发一次调度所生成的任务数量
- 允许同时等待和运行的最大任务数
- 对应调度所允许存在的任务上限,如果当前任务数量未达到设定值,则下次仍会生 成新的任务,可能导致总任务数量暂时超过该设定值
评估所生成的任务数R时可通过:R = (N/X) * E
注意
生成的任务数R受允许同时等待和运行的最大任务数。
示例
场景 - 单独添加的队列项目
我有两个任务:
- 其中一个任务会在 30 秒内每秒向目标数据队列添加 3 个项(共 90 个数据项)。
- 另一个任务会每秒处理目标数据队列中的 1 个数据项。
我已将队列定义如下:
- 触发生成一条任务的最小数据项数:31。
- 允许同时等待和运行的最大任务数:3。
- 每次调度生成任务数:1。
我启动向队列添加数据项的任务。
1.11 秒(30 个数据项)后,将触发第一个数据项处理任务;
2.再过 10 秒(32 个数据项)后,将触发第二个数据项处理任务;
直到结束添加队列数据时,第一个任务已处理 19 个数据项,第二个任务已处理 9 个数据项。 这意味着剩余 62 个(90-28)数据项待处理。有 2 个任务,每个任务每秒处理 1 个数据项,这意味着需要 31 秒才能处理剩余数据项,因此总共需要 61 秒。