工作管理器和限制 work-manager-and-throttling
AEM表单(及更早版本)使用JMS队列异步执行操作。 在AEM表单中,JMS队列已由工作管理器取代。 本文档提供了有关工作管理器的背景信息,并提供了有关配置工作管理器限制选项的说明。
关于长期(异步)操作 about-long-lived-asynchronous-operations
在AEM表单中,服务执行的操作可以是短期的(同步),也可以是长期的(异步)。 短期操作在从中调用它们的同一线程上同步完成。 这些操作在继续之前会等待响应。
长期运营可能跨多个系统,甚至可能扩展到组织之外,例如,客户必须填写并提交贷款申请表,作为集成多个自动化和人工任务的较大解决方案的一部分。 在等待回应的同时,这种行动必须继续进行。 长寿运营以异步方式执行其基础工作,从而允许资源在等待完成时以其他方式参与。 与短期操作不同,工作管理器在调用长期操作后并不认为该操作已完成。 必须发生外部触发器(如请求对同一服务执行其他操作的系统或提交表单的用户)才能完成操作。
关于工作管理器 about-work-manager
AEM表单(及更早版本)使用JMS队列异步执行操作。 AEM Forms使用工作管理器通过托管线程来计划和执行异步操作。
异步操作按以下方式处理:
- 工作管理器接收要执行的工作项。
- 工作管理器将工作项存储在数据库表中,并为工作项分配唯一标识符。 数据库记录包含执行工作项所需的所有信息。
- 当线程空闲时,工作管理器线程拉入工作项。 在拉入工作项之前,线程可以检查所需的服务是否已启动,是否有足够的栈大小来拉入下一个工作项,以及是否有足够的CPU周期来处理该工作项。 在安排执行时,工作管理器还会评估工作项的属性(如优先级)。
AEM forms管理员可以使用运行状况监视器检查Work Manager统计信息,例如队列中的工作项数及其状态。 您还可以使用运行状况监视器暂停、继续、重试或删除工作项。 (请参阅查看与工作管理器相关的统计信息。)
配置工作管理器限制选项 configuring-work-manager-throttling-options
您可以为工作管理器配置限制,以便仅在有足够的可用内存资源时计划工作项。 您可通过在应用程序服务器中设置以下JVM选项来配置限制。
adobe.work-manager.queue-refill-interval
指定工作管理器在检查其队列中的新项目时使用的时间间隔(以毫秒为单位)。
此选项的值是一个整数。 默认值为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
指定工作管理器限制传入作业之前可以使用的最大内存百分比。
此选项的默认值为95
。 该值对于大多数系统应该都是合适的。 仅当您的系统需要推送到其最大容量时才增加容量。 但请注意,随着此值的增加,内存不足问题的风险也会增加。
如果在群集环境中运行AEM表单,则可能需要在群集的不同节点上以不同的方式设置内存控制限制设置。 例如,节点A和B的上限可能较低,这两个节点均在负载平衡器中编程以用于交互式工作。 此外,您还可以在节点C和D上设置更高的高限制,负载平衡器不使用这些节点,而是将其保留用于异步工作。
adobe.workmanager.memory-control.low-limit
指定工作管理器停止限制传入作业之前可以使用的最大内存百分比。
此选项的默认值为20
。 该值对于大多数系统应该都是合适的。
Dadobe.workmanager.allocate.max-batch-size
指定Workmanager的最大批次大小。 默认批次大小为10。
如果即使在任务完成后,Workmanager中进程的状态也未更新,则将批次大小设置为1。
将Java选项添加到JBoss
- 停止JBoss应用程序服务器。
- 在编辑器中打开 [appserver root]/bin/run.bat (Windows)或run.sh (Linux或UNIX),并根据需要添加任何Java选项,格式为
-Dproperty=value
。 - 重新启动服务器。
将Java选项添加到WebLogic
-
在Web浏览器中键入
https://[host name]:[port]/console
以启动WebLogic管理控制台。 -
键入为WebLogic Server域创建的用户名和密码,然后单击“更改中心”下的“日志”,然后单击“锁定和编辑”。
-
在“域结构”下,单击“环境”>“服务器”,然后在右窗格中单击受控服务器名称。
-
在下一个屏幕上,单击Configuration选项卡> Server Start选项卡。
-
在“参数”框中,将所需的参数附加到当前内容的末尾。 例如,要禁用运行状况监视器,请添加:
-Dadobe.healthmonitor.enabled=false
禁用运行状况监视器。 -
单击保存,然后单击激活更改。
-
重新启动WebLogic托管服务器。
将Java选项添加到WebSphere
- 在WebSphere管理控制台导航树中,单击“服务器”>“服务器类型”>“WebSphere应用程序服务器”。
- 在右窗格中,单击服务器名称。
- 在“服务器基础架构”下,单击“Java和表单工作流”>“进程定义”。
- 在“其他属性”下,单击“Java虚拟机”。
- 在“通用JVM参数”框中,键入所需的参数。
- 单击确定或应用,然后单击直接保存到主配置。