Work Manager和限制

AEM表单(及更早版本)使用JMS队列异步执行操作。 在AEM表单中,JMS队列已被Work Manager替换。 本文档提供了有关Work Manager的背景信息,并提供了有关配置Work Manager限制选项的说明。

关于长时间(异步)操作

在AEM表单中,由服务执行的操作可以是短期(同步)操作,也可以是长期(异步)操作。 在从中调用它们的同一线程上同步完成短期操作。 这些操作需要等待响应才能继续。

长期运营可能会跨越系统,甚至延伸到组织之外,例如,客户必须完成并提交贷款申请表,作为集成多个自动化和人力任务的大型解决方案的一部分。 在等待答复的同时,这些行动必须继续。 长期运营可以异步执行其底层工作,从而允许在等待完成时以其他方式参与资源。 与短期操作不同,工作管理器在调用后不会认为长期操作已完成。 必须出现外部触发器,例如在同一服务上请求另一个操作的系统或提交表单的用户,才能完成操作。

关于Work Manager

AEM表单(及更早版本)使用JMS队列异步执行操作。 AEM Forms使用Work Manager通过托管线程计划和执行异步操作。

异步操作以下方式处理:

  1. 工作管理器接收要执行的工作项。
  2. Work Manager将工作项存储在数据库表中,并为工作项分配唯一标识符。 数据库记录包含执行工作项所需的所有信息。
  3. 当线程空闲时,Work Manager线程会提取工作项。 在提取工作项之前,线程可以检查所需的服务是否已启动,是否有足够的堆大小来提取下一个工作项,以及是否有足够的CPU周期来处理该工作项。 Work Manager还会在计划执行工作项时评估其属性(如其优先级)。

AEM Forms管理员可以使用运行状况监视器来检查Work Manager统计信息,如队列中工作项的数量及其状态。 您还可以使用运行状况监视器来暂停、恢复、重试或删除工作项。 (请参阅查看与Work Manager相关的统计信息。)

配置Work Manager限制选项

您可以为Work Manager配置限制,以便仅在有足够的可用内存资源时才计划工作项目。 通过在应用程序服务器中设置以下JVM选项来配置限制。

属性

描述

 adobe.work-manager.queue-refill-interval

指定Work Manager在检查其队列中的新项目时所使用的时间间隔(以毫秒为单位)。

此选项的值是一个整数。 默认值为1000毫秒(1秒)。

如果异步调用的数量较少,则可以增加此值。 例如,您可以将其增加到2000到5000(2到5秒)之间的某个时间段。

如果异步调用的数量较大,则默认值应该足够,但您可以根据需要使用较小的值。 过多地降低此值(例如,低于50,导致轮询频率为每秒20次)会导致系统产生大量开销。

 adobe.workmanager.debug-mode-enabled

将此选项设置为true以启用调试模式,或将其设置为false以禁用。

在调试模式下,将记录有关Work Manager策略违规和Work Manager暂停/恢复操作的消息。 仅当进行故障诊断时,才将此选项设置为true。

 adobe.workmanager.memory-control.enabled

将此选项设置为true以根据下面所述的内存控制设置启用限制,或将此选项设置为false以禁用限制。

 adobe.workmanager.memory-control.high-limit

指定在Work Manager限制传入作业之前可使用的内存的最大百分比。

此选项的默认值为95。 此值对于大多数系统来说都是合适的。 仅当您的系统需要推送到其最大容量时,才应增加容量。 但请注意,随着此值的增加,内存不足问题的风险也会增加。

如果您在群集环境中运行AEM表单,则可能需要在群集的不同节点上以不同方式设置内存控制限制设置。 例如,您可以对节点A和B设置较低的上限,这两个节点是在负载平衡器中编程的,用于进行交互式工作。 而且您可以在节点C和D上设置更高的高限值,这些高限值不由负载平衡器使用,但保留用于异步工作。

 adobe.workmanager.memory-control.low-limit

指定在Work Manager停止限制传入作业之前,可使用的内存的最大百分比。

此选项的默认值为20。 此值对于大多数系统来说都是合适的。

Dadobe.workmanager.allocate.max-batch-size

指定Workmanager的批处理大小上限。 默认批次大小为10。

如果即使任务完成后仍未更新Workmanager中进程的状态,则将批次大小设置为1。

将Java选项添加到JBoss

  1. 停止JBoss应用程序服务器。
  2. 在编辑器中打开​[appserver root]/bin/run.bat(Windows)或run.sh(Linux或UNIX),并根据需要以-Dproperty=value格式添加任何Java选项。
  3. 重新启动服务器。

将Java选项添加到WebLogic

  1. 在Web浏览器中键入https://[host name]:[port]/console以启动WebLogic管理控制台。

  2. 键入您为WebLogic Server域创建的用户名和密码,然后单击“更改中心”下的“日志”,然后单击“锁定并编辑”。

  3. 在“域结构”下,单击“环境”>“服务器”,然后在右窗格中,单击受控服务器名称。

  4. 在下一个屏幕上,单击“配置”选项卡>“服务器开始”选项卡。

  5. 在参数框中,将所需的参数附加到当前内容的末尾。 例如,要禁用运行状况监视器,请添加:

    -Dadobe.healthmonitor.enabled=false 禁用运行状况监视器。

  6. 单击保存,然后单击激活更改。

  7. 重新启动WebLogic托管服务器。

将Java选项添加到WebSphere

  1. 在WebSphere管理控制台导航树中,单击“服务器”>“服务器类型”>“WebSphere应用程序服务器”。
  2. 在右窗格中,单击服务器名称。
  3. 在“服务器基础架构”下,单击Java和表单工作流>进程定义。
  4. 在“其他属性”下,单击“Java虚拟机”。
  5. 在“通用JVM参数”框中,键入所需的参数。
  6. 单击确定或应用,然后单击直接保存到主控配置。

在此页面上