请查阅并遵循这些推荐的做法,以确保您的 WLM 实施稳定、高效且可扩展。

推荐做法

确保队列所有者具有冗余性
  • 建议: 确保队列至少有 2 个所有者,以防其中一个所有者被删除或禁用时不会出现死锁。
  • 原因: 这是关键的业务连续性与管理最佳实践。 如果队列所有者离开组织或其账户被禁用,次要所有者仍可以管理队列(例如,暂停、重新配置或管理工作项),而不会出现管理上的瓶颈,从而防止死锁。
最大化 Control Room 中的工作项可见性
  • 建议: 可以在 Control Room 中显示最多 10 个工作项列。 使用此功能以最大限度地了解您的工作项数据。
  • 原因: 在定义工作队列结构时,您需要指定列。 在 Control Room 工作项视图中显示相关列,使操作员和业务用户能够快速了解每个工作项的上下文,识别特定项,并在无需下载数据的情况下进行故障排除。 选择最能区分各个工作项的重要字段。
优化工作项数据和结果值
  • 建议: 以最佳方式利用可以接受最多 1000 个字符的工作项值,特别是针对工作项的结果值。
  • 原因: 工作项的结果字段对于提供处理结果的详细反馈至关重要(例如,发票已成功过账,ID: INV12345,客户记录已创建,账户: CUST987,或失败 - 邮箱格式无效)。 使用 1000 字符限制,以确保消息全面且可操作,减少因简单结果而需查阅外部日志的需求。
有效地优先处理工作事项
  • 建议: 要优先处理某些工作项,请确保在创建队列时对工作项数据进行排序。
  • 原因: 虽然您可以为整个队列和单个工作项设置默认优先级,但您插入项目的顺序也会对具有相同优先级的项目的初始处理产生影响。 因此,在队列中使用排序标准(在创建队列时完成)可以确保符合特定业务价值或紧急性的项目始终位于队列顶部,供设备选择。
使用 API 插入批量工作项
  • 建议: 要批量插入工作项,请使用 workitems API,因为此 API 接受 JSON 格式的工作项列表。
  • 原因: 为循环中的每一个工作项发送一次 API 请求,对于数千个项目而言会产生显著的网络和 API 开销。 因此,通过使用 workitems API 来优化性能,该 API 允许您构建包含多个工作项对象(即批处理)的 JSON 数组,并通过单次 API 调用发送该数组。 这极大地减少了调用次数,使设备在填充大型队列时运行更快、效率更高。
确保集群时钟已同步
  • 建议: 确保集群中所有节点(设备)的时间(时钟)同步。 这是确保 Apache Ignite 缓存服务器正常运行的重要因素。
  • 原因: Control Room 使用 Apache Ignite 进行分布式缓存。 如果集群中不同节点的系统时钟不同步,可能会导致数据不一致、缓存丢失以及其他不可预测的错误,这可能会对 WLM 的性能和可靠性产生影响。 您需要配置 Network Time Protocol (NTP) 服务。
确保数据库连接的持续性
  • 建议: 确保数据库连接的持久性和连续性,因为这对于工作负载自动化至关重要。 确保您定期进行网络扫描,或者使用能够检测或避免网络问题的工具。
  • 原因: 持续的数据库连接对于不中断的工作负载自动化至关重要。 任何连接中断都可能导致任务失败、处理延迟、数据不一致以及未达成服务级别协议 (SLA)。 保持稳定的连接可确保可靠性、流畅执行和实现最佳的系统性能。
通过 API 确保进行高效的工作项检索
  • 建议: 将分页过滤器应用于 API,以分批检索可管理的工作项。
  • 原因: 当通过 工作负载管理 API 从队列中以编程方式检索工作项时,会应用默认限制(通常为 200)。 这可以防止系统因大量响应而过载。 对于需要从队列中检索大量项目的场景,建议使用分页(例如 offset 和 length 参数)将其分批获取,以便更易于管理。

应避免的做法

不要在循环中使用单个 API 调用进行批量插入
  • 建议: 为确保 WLM 功能高效运行,请避免在循环中使用 workitems API 批量插入工作项。
  • 原因: 为大型批处理中的每个工作项单独设置 API 调用效率低下,且可能造成显著的网络和服务器负载。 相反,请使用接受列表的 workitems API 批量插入工作项。
不要在设备池中的设备上创建本地计划
  • 建议: 如果该设备属于设备池,请避免在其上创建本地计划。 这可确保该设备专用于运行工作项。
  • 原因: 池中的设备由 Control Room 为 WLM 进行管理。 本地计划可能覆盖此管理,导致设备运行计划的任务而不是 WLM 任务。 这可能导致资源冲突、不可预测的行为以及未达成服务级别协议 (SLA)。 池中的设备应保持完全可用于 Control Room - 分布式工作项。
不要移除活动队列用户的运行机器人权限
  • 建议: 如果用户正在使用队列,请不要从该用户(角色)中移除运行机器人权限。
  • 原因: 如果某个用户的角色(或与正在运行的流程或计划关联的特定用户账户)与队列的处理相关联,移除他们的运行机器人权限将导致相关自动化失败。 这又会干扰 WLM 过程。 在进行更改之前务必核查权限,尤其是对于积极参与自动化执行的账户。
在处理过程中请勿关闭设备
  • 建议: 如果工作项正在进行中,请不要关闭设备。 如果设备需要离线进行维护,请确保暂停队列并确认该设备上没有正在处理的工作项。
  • 原因: 如果设备在处理工作项时突然关闭,可能会导致该工作项卡住(例如,长期处于 PUSHED 状态)或进度丢失。 因此,请确保首先将任何关联的队列暂停,允许当前正在处理的项目完成,然后在设备下线之前确认设备处于空闲状态。 这可确保平稳处理,并防止数据丢失或出现孤立的工作项。
在处理过程中不要停止 Control Room 服务
  • 建议: 如果正在处理工作项队列,请不要停止或重启 Automation Anywhere Control Room 服务。 相反,暂停队列自动化,然后重新启动服务。
  • 原因: Control Room 服务是 Control Room 的重要组成部分,包括 WLM。 在队列处于活动状态时停止,将会中止所有处理,可能导致工作项处于不一致的状态,或导致尝试更新状态的自动化出现错误。 对 Control Room 服务进行维护之前,请务必暂停队列(这样可防止自动化选择新项目),然后重启该服务。