- 入门指南
- 最佳实践
- 租户
- 资源目录服务
- 文件夹上下文
- 自动化
- 流程
- 作业
- 触发器
- 关于触发器
- 管理触发器
- 使用 CRON 表达式
- 日志
- 监控
- 队列
- 资产
- 存储桶
- Test Suite - Orchestrator
- 其他配置
- 集成
- 传统机器人
- 主机管理
- 组织管理
- 故障排除
关于触发器
触发器使您能够以预先计划的方式,以固定的时间间隔(时间触发器)或每当有新项目添加到队列中时(队列触发器)执行作业。“触发器”页面使您可以创建新触发器,管理现有触发器以及立即为任何现有触发器启动作业。
触发器时区:
在触发器上设置的时区不受租户时区的限制。 但是,如果您使用非工作日日历,则无法设置不同的时区。
时间触发器将根据触发器级别上定义的时区启动。 队列触发器是根据队列项目处理启动的。
根据触发器时区禁用时间触发器和队列触发器。
触发器禁用:
默认情况下,如果触发器在过去一天未能成功启动,则该触发器将在启动失败 10 次后自动禁用。
可以使用 Triggers.DisableWhenFailedCount
参数自定义此值。
使您可以计划作业的定期开始时间。
为流程添加时间触发器后,您可以预期以下内容:
- 触发器会在计划的时间使用您选择的分配、帐户和计算机选项创建作业。 这并不等同于作业的实际执行。
- 机器人可用后,将执行在步骤 1 中创建的作业。 默认情况下,如果触发器已有待处理作业,则在执行第一个作业之前,不会创建新作业。
- 触发器可以创建的待处理作业数由 Triggers.JobsCountStrategy 参数控制。
支持输入和输出参数的流程的输入值也可以在此级别管理。
您可以配置多个规则,具体取决于执行哪些关联的流程。
描述 | |
---|---|
动态分配 |
动态分配 根据给定的触发条件定义一个流程要执行的次数。此选项使您可以最大程度地利用资源。一旦机器人变为可用状态,它就会根据提供的触发器执行指示的流程。 |
帐户 该流程在特定帐户下执行。仅指定帐户会导致 Orchestrator 动态分配计算机。同时指定帐户和计算机模板意味着作业将在该帐户-计算机对上启动。 | |
计算机 此流程在附加到所选计算机模板的其中一台主机上执行。仅指定计算机模板会导致 Orchestrator 动态分配帐户。同时指定帐户和计算机模板意味着作业将在该帐户-计算机对上启动。 注意:确保将执行作业所需的运行时许可证分配给关联的计算机模板。
| |
主机名 选择计算机模板后,系统将显示“主机名”选项,允许您选择所需的工作站/机器人会话以执行流程。 系统将显示活动文件夹中的所有可用会话,包括未连接、已断开连接或已连接的会话。 注意:只有无人值守运行时可用于配置映射。确保将执行作业所需的运行时许可证分配给关联的计算机模板。
| |
选择有效的帐户-计算机映射 |
该流程可以在多个特定的帐户-计算机对上执行。 备注:
|
-
要确定选择未激活的主机名,请单击“确认”。
-
要返回并选择另一个主机名,请单击“取消”。
-
例如,假设您配置了触发器 T1,其中帐户 A1 映射到计算机模板 MT1。在此配置中,有十个作业排队。
稍后,您使用映射到计算机模板 MT1 的帐户 A1 配置相同的触发器 T1,但现在您还要选择主机名 H1。在这种情况下,十个相同的作业将再次排队,因为 Orchestrator 会将配置解释为新配置。
- 如果您在同一机器人上设置了多个触发器,并且它们的执行时间至少重叠了一次,则作业将排队,处于挂起状态。机器人按时间顺序执行排队的作业。
-
如果在同一机器人上多次计划了同一流程,并且它们的执行时间重叠,则只有一个流程以待定状态中排队。例如,如果将 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 个机器人的另一个作业。在没有剩余作业之前,每个可用的机器人都会发生这种情况。
-
如果两个或多个触发器运行相同的流程,每个触发器执行不同的次数,则在下一次触发时,它们之间的最大作业数将添加到环境工作负载中;他们不会累积。想象一下以下情况:触发器 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 触发时,将添加 13 个作业,从而达到 20 个作业的上限。
-
如果计划多次运行相同的流程,则相关队列中的作业将限制为在定义计划时在执行目标选项卡上指定的执行次数。它们不会随触发器的每次启动累加。
假设您要每 30 分钟运行相同的流程 10 次。首次启动触发器时,将有 10 个作业排队。如果在两次触发之间执行的作业少于 10 (例如 4 个),则在下一次触发时仅有 6 个新作业排队,因为该流程的待定作业数最多为 10。
可以在创建触发器后或将新项目添加到队列中时立即启动流程。触发器在与所选流程关联的环境中运行。
有以下三个选项可帮助您参数化流程触发的规则:
描述 | |
---|---|
触发第一个作业的最小项目数 |
仅在目标队列中至少有这个数量的新项目之后,才开始项目处理作业。 延迟的队列项目不计算在内。 |
允许同时等待和运行的最大作业数 |
允许的待处理作业和正在运行的作业的最大数量(一起计算)。 对于同时允许的 2 个或多个作业,需要按如下所述定义第三个选项。 |
每 __ 个新项目触发另一个作业。 |
在为第一个选项定义的项目数的基础上,为每个添加的新项目数触发一个新作业。 仅在同时允许 2 个或更多作业(使用上述选项定义)时启用。 |
为了处理在加入队列时无法处理的队列项目(包括重试项目),默认情况下每 30 分钟执行一次未处理项目检查,如果满足触发条件,则会再次启动触发器。此检查可确保在以下情况下队列中的所有项目都能得到处理:
- 队列项目添加到队列的速度比使用可用资源处理队列项目的速度要快得多。
- 队列项目是在非工作日添加到队列中的,但是只能在工作时间进行处理。
-
队列项目处理将推迟到以后的时间。经过这段时间后,一旦经过 30 分钟的检查确定,便可以对其进行处理。
注意:默认检查时间为 30 分钟,因此在非工作时间存在资源阻塞的风险。为避免这种情况,请确保在工作日结束时没有未处理的项目。如果不可能,请确保触发的流程不需要人工干预。注意: 请注意,您可以使用 Queue.ProcessActivationSchedule 参数调整默认的 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 秒。
您可以配置多个规则,具体取决于执行哪些关联的流程。
描述 | |
---|---|
帐户 |
该流程在特定帐户下执行。仅指定帐户会导致 Orchestrator 动态分配计算机。同时指定帐户和计算机模板意味着作业将在该帐户-计算机对上启动。 |
计算机 |
此流程在附加到所选计算机模板的其中一台主机上执行。仅指定计算机模板会导致 Orchestrator 动态分配帐户。同时指定帐户和计算机模板意味着作业将在该帐户-计算机对上启动。 注意:确保将执行作业所需的运行时许可证分配给关联的计算机模板。
|
主机名 |
主机名 选择计算机模板后,系统将显示“主机名”选项,允许您选择所需的工作站/机器人会话以执行流程。 系统将显示活动文件夹中的所有可用会话,包括未连接、已断开连接或已连接的会话。 注意:确保将执行作业所需的运行时许可证分配给关联的计算机模板。
|
使用 Triggers.JobsCountStrategy 参数,您可以选择通过触发器启动作业的策略。 提供以下选项:
PerProcess
- 触发器启动指定数量的作业,同时考虑到指定流程的所有待处理作业。例如,为同一流程定义的两个触发器分别启动 3 个和 5 个作业。如果第一个触发器在给定的时间点启动了 3 个作业,则当第二个触发器触发时,将启动 2 个作业,以达到 5 个所需的作业。PerTrigger
- 触发器启动指定数量的作业,同时考虑到该触发器先前启动的任何现有作业。例如,定义了一个触发器以在给定的时间点启动 9 个作业。如果再次触发此触发器之前已成功完成 2 个作业,则 Orchestrator 将启动另外 2 个作业,以达到 9 个所需的作业。NoLimit
- 触发器将启动指定数量的作业,不考虑任何现有的待处理作业。例如,定义了一个触发器以在给定的时间点启动 5 个作业。第二次触发触发器时,将启动另外 5 个作业。
这使您可以为每个租户定义多个非工作日列表,每个都有自己的日期集,您可以根据需要在其上将触发器配置为不运行。这意味着,您可以配置长期触发器,使其不会在公共假日、周末或其他不进行正常业务活动的日子中启动。您可以在设置页面的非工作日选项卡中定义或上传此类日历。默认情况下,将创建节假日日历,以帮助您更轻松地定义第一批非工作日。一旦选定日历中定义的非工作日结束,触发器将照常启动。
要将这些限制中的任何一项应用于触发器,您需要在创建新触发器或编辑现有触发器时,从非工作日限制下拉列表中选择所需的日历。只能为一个触发器选择一个日历。请注意,在非工作日选项卡上编辑日历也会影响已在非工作日限制下拉列表中选择该日历的触发器。
请注意,添加和删除非工作日是在租户级别进行审核的。