第 20 章 配置批处理应用程序
JBoss EAP 8.0 支持 Jakarta Batch。您可以配置一个环境,以运行批处理应用,并使用 batch-jberet 子系统管理批处理作业。
有关开发批处理应用的信息,请参阅 JBoss EAP 开发指南中的 Jakarta 批处理应用程序开发。
20.1. 配置批处理作业 复制链接链接已复制到粘贴板!
您可以使用 batch-jberet 子系统来配置批处理作业的设置,该子系统基于 JBeret 实施。
默认的 batch-jberet 子系统配置定义内存中作业存储库和默认线程池设置。
默认情况下,在服务器暂停期间停止的任何批处理作业都将在服务器恢复时重新启动。您可以将 restart-jobs-on-resume 属性设置为 false,以将作业保留为 STOPPED 状态。
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
您还可以配置批处理 作业存储库和线程池 的设置。
20.1.1. 配置批处理作业存储库 复制链接链接已复制到粘贴板!
本节介绍如何配置内存中和 JDBC 作业存储库,以使用管理 CLI 存储批处理作业信息。您还可以使用管理控制台配置作业存储库,方法是导航到 Configuration
添加内存中作业存储库
您可以添加将批处理作业信息存储在内存中的作业存储库。
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
添加 JDBC 作业存储库
您可以添加将批处理作业信息存储在数据库中的作业存储库。您必须指定用于连接数据库的数据源的名称。
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
有关数据源的更多信息,请参阅关于 JBoss EAP 数据源。
设置默认作业存储库
您可以将内存中或 JDBC 作业存储库设置为批处理应用的默认作业存储库。
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
这需要重新加载服务器。
reload
reload
20.1.2. 配置批处理线程池 复制链接链接已复制到粘贴板!
本节介绍如何使用管理 CLI 配置用于批处理作业的线程池和线程工厂。您还可以使用管理控制台配置线程池和线程工厂,方法是导航到 Configuration
配置线程池
添加线程池时,您必须指定 max-threads,它应始终大于 3,因为保留两个线程,以确保分区作业可以按预期执行。
流程
添加线程池。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,设置
keepalive-time值。/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用线程工厂
流程
添加线程工厂。
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:add
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为线程工厂配置所需的属性。
-
group-name- 为此线程工厂创建的线程组的名称。 -
priority- 创建的线程优先级。 thread-name-pattern- 用于为线程创建名称的模板。可使用以下模式:-
%%- 百分比符号 -
%T-factory 线程序列号 -
%g- 全局线程序列号 -
%f- 工厂序列号 -
%I- 线程 ID
-
-
将线程工厂分配给线程池。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这需要重新加载服务器。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
设置默认线程池
您可以将不同的线程池设置为默认线程池。
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
这需要重新加载服务器。
reload
reload
查看线程池统计信息
您可以使用 read-resource 管理 CLI 操作查看有关批处理线程池的运行时信息。您必须使用 include-runtime=true 参数来查看此运行时信息。
您还可以使用管理控制台,从 Runtime 选项卡导航到 Batch 子系统来查看批处理线程池的运行时信息。