触发器
触发器使您能够以预先计划的方式,以固定的时间间隔(时间触发器)或每当有新项目添加到队列中时(队列触发器)执行作业。“触发器”页面使您可以创建新触发器,管理现有触发器以及立即为任何现有触发器启动作业。
使您可以计划作业的定期开始时间。支持输入和输出参数的流程的输入值也可以在此级别管理。您可以配置多个规则,具体取决于执行哪些关联的流程。
所有机器人 |
特定机器人 |
动态分配 |
---|---|---|
触发的作业在特定环境中的所有机器人上启动。 |
触发的作业由用户选择的机器人执行。 |
根据给定的触发条件定义一个流程要执行的次数。此选项使您可以最大程度地利用资源。一旦机器人变为可用状态,它就会根据提供的触发器执行指示的流程。 |
- 如果您在同一机器人上设置了多个触发器,并且它们的执行时间至少重叠了一次,则作业将排队,处于挂起状态。机器人按时间顺序执行排队的作业。
-
如果在同一机器人上多次计划了同一流程,并且它们的执行时间重叠,则只有一个流程以待定状态中排队。例如,如果将 Robot X 上的流程 A 安排为在 11:20、11:21 和 11:25 运行,则行为如下:
- 在 11:20 执行第一个流程。
-
如果第一次执行在第二次触发之前完成:
-
第二个触发器已处理。
- 如果此执行在 11:25 触发器之前完成,则后者也将执行。
- 如果 11:21 触发器的执行未在 11:25 触发器之前完成,则后者将以挂起状态添加到队列中。
-
- 如果第一个执行在第二个触发器之前未完成:
-
11:21 触发器处于队列中,为挂起状态。
- 如果 11:21 触发器的执行在 11:25 触发器之前完成,则后者也将执行。
- 如果 11:21 触发器的执行启动了,但未在 11:25 触发器之前完成,则后者将以挂起状态加入队列中。
- 如果 11:21 触发器在 11:25 触发器应开始时仍处于待定状态,则后者将不再执行或添加到队列中,并显示以下消息:“对于此流程,机器人已经有待定作业。”
-
-
如果要在任何可用的机器人上多次执行一个流程,则可以使用“执行目标”选项卡上的“动态分配”选项来执行。作业在相应的环境中排队,并处于挂起状态,每当机器人可用时,都会执行队列中的第一个作业。这样,在有待处理的作业时,不会有机器人处于空闲状态。
假设您要运行一个流程 7 次。计划触发后,会将 7 个待处理作业添加到环境工作负载中,而不会分配给特定的机器人。可能有两种情况:
- 触发时至少有 7 个机器人可用 - 向每个机器人分配一个作业,以便一次性执行所有作业。
-
触发时可用的机器人少于 7 个(例如 4 个)- 向 4 个机器人中的每个机器人分配一个作业,如果新机器人或 4 个机器人之一可用,则机器人将接管剩余 3 个机器人的另一个作业。在没有剩余作业之前,每个可用的机器人都会发生这种情况。
注意:使用“动态分配”选项,您可以在一个作业中最多执行一个流程 10000 次。
-
如果两个或多个触发器运行相同的流程,每个触发器执行不同的次数,则在下一次触发时,它们之间的最大作业数将添加到环境工作负载中;他们不会累积。想象一下以下情况:触发器 A 运行 13 次,触发器 B 运行 20 次。可能会出现以下情况:
- A 和 B 同时触发 - 环境工作负载中有 20 个作业(13 到 20 之间的最大值)排队。
-
B 先触发 - 20 个作业排队。
- 如果在 B 的触发时间和 A 的触发时间之间执行了 7 个或更多作业(例如执行了 9 个作业,剩余 11 个待处理作业),则环境工作负载中有 13 个作业(11 到 13 之间的最大值)排队。
- 如果在 B 的触发时间和 A 的触发时间之间执行的作业少于 7 个(例如执行了 5个,剩余 15 个待处理作业),则没有更多作业排队,因为已有超过 13 个作业待处理。此外,系统还会显示以下消息:对于此流程,机器人已经有待定作业。
-
A 先触发 - 13 个作业排队。
- 每当在 A 的执行期间触发 B 时,最多会向环境中添加 20 个作业,具体取决于 A 中正在进行或已执行的作业数量。假设已执行 6 个作业。当 B 触发时,将添加 14 个作业,从而达到 20 个作业的上限。
-
如果触发器多次运行相同的流程,则相关队列中的作业执行次数将限制为在定义触发器时在“执行目标”选项卡上指定的值。它们不会随触发器的每次触发累加。
假设您要每 30 分钟运行相同的流程 10 次。首次启动触发器时,将有 10 个作业排队。如果在两次触发之间执行的作业少于 10 (例如 4 个),则在下一次触发时仅有 6 个新作业排队,因为该流程的待定作业数最多为 10。
注意:请记住,直接分配给特定机器人的作业优先于动态分配的作业。此外,如果机器人属于两个或多个环境的一部分,则系统会按照创建作业的顺序执行作业。
使您能够在队列中有新队列项目时触发流程。 触发器在与所选流程关联的环境中运行。
有以下三个选项可帮助您参数化流程触发的规则:
选项 |
描述 |
---|---|
触发第一个作业的最小项目数 |
仅在目标队列中至少有这个数量的新项目之后,才开始项目处理作业。 延迟的队列项目不计算在内。 |
允许同时等待和运行的最大作业数 |
允许的待处理作业和正在运行的作业的最大数量(一起计算)。 对于同时允许的 2 个或多个作业,需要按如下所述定义第三个选项。 |
每 __ 个新项目触发另一个作业。 |
在为第一个选项定义的项目数的基础上,为每个添加的新项目数触发一个新作业。 仅在同时允许 2 个或更多作业(使用上述选项定义)时启用。 |
每 30 分钟检查一次新项目(包括重试项目),如果满足触发条件,则再次启动触发器。 这可确保在以下情况下处理队列中的所有项目:
- 队列项目添加到队列的速度比使用可用资源处理队列项目的速度要快得多。
- 队列项目是在非工作日添加到队列中的,但是只能在工作时间进行处理。
-
队列项目处理将推迟到以后的时间。经过这段时间后,一旦经过 30 分钟的检查确定,便可以对其进行处理。
注意:检查时间为 30 分钟,因此在非工作时间存在资源阻塞的风险。为避免这种情况,请确保在工作日结束时没有未处理的项目。如果不可能,请确保触发的流程不需要人工干预。
我有两个作业:
- 其中一个作业会在 20 秒内每秒向目标队列添加 3 个项目(共 60 个项目)。
- 另一个作业会每秒处理目标队列中的 1 个项目。
我已将触发器定义如下:
- 触发第一个作业的最小项目数:
31
。 - 允许同时等待和运行的最大作业数:
3
。 - 每
10
个新项目触发另一个作业。
我启动向队列添加项目的作业。
- 11 秒(33 个项目)后,将触发第一个项目处理作业。
- 再过 4 秒(12 个项目)后,将触发第二个项目处理作业。
- 再过 4 秒(12 个项目)后,将触发第三个项目处理作业。
直到结束添加队列项目时,第一个作业已处理 9 个项目,第二个作业已处理 5 个项目,第三个作业已处理 1 个项目。也就是说,三个作业在 20 秒内处理了 15 个项目。
这意味着剩余 45 个(60-15)项目待处理。有 3 个作业,每个作业每秒处理 1 个项目,这意味着需要 15 秒才能处理剩余项目。
总计 35 秒。
这使您可以为每个租户定义多个非工作日列表,每个都有自己的日期集,您可以根据需要在其上将触发器配置为不运行。这意味着,您可以配置长期触发器,使其不会在公共假日、周末或其他不进行正常业务活动的日子中启动。您可以在设置页面的非工作日选项卡中定义或上传此类日历。默认情况下,将创建节假日日历,以帮助您更轻松地定义第一批非工作日。一旦选定日历中定义的非工作日结束,触发器将照常启动。
要将这些限制中的任何一项应用于触发器,您需要在创建新触发器或编辑现有触发器时,从非工作日限制下拉列表中选择所需的日历。只能为一个触发器选择一个日历。请注意,在非工作日选项卡上编辑日历也会影响已在非工作日限制下拉列表中选择该日历的触发器。
请注意,添加和删除非工作日是在租户级别进行审核的。