3.5. 使用 KIE 扫描程序来监控和更新 KIE 容器
Red Hat Process Automation Manager 中的 KIE 扫描程序会监控您的 Maven 存储库以获取 Red Hat Process Automation Manager 项目的新 SNAPSHOT 版本,然后将项目的最新版本部署到指定的 KIE 容器。您可以在开发环境中使用 KIE 扫描程序,在新版本可用时更有效地维护您的 Red Hat Process Automation Manager 项目部署。
对于生产环境,请不要将 KIE 扫描程序与 SNAPSHOT 项目版本搭配使用,以避免意外或意外的项目更新。KIE 扫描程序适用于使用 SNAPSHOT 项目版本的开发环境。
避免将 KIE 扫描程序与业务流程一起使用。将 KIE 扫描程序与进程搭配使用可能会导致无法预见的更新,然后在更改与正在运行的进程实例不兼容时导致长时间运行的进程出现错误。
先决条件
-
kie-ci.jar文件位于 Red Hat Process Automation Manager 项目的类路径上。
流程
在项目中的相关
.java类中,注册并启动 KIE 扫描程序,如下例所示:为 KIE 容器注册并启动 KIE 扫描程序
import org.kie.api.KieServices; import org.kie.api.builder.ReleaseId; import org.kie.api.runtime.KieContainer; import org.kie.api.builder.KieScanner; ... KieServices kieServices = KieServices.Factory.get(); ReleaseId releaseId = kieServices .newReleaseId("com.sample", "my-app", "1.0-SNAPSHOT"); KieContainer kContainer = kieServices.newKieContainer(releaseId); KieScanner kScanner = kieServices.newKieScanner(kContainer); // Start KIE scanner for polling the Maven repository every 10 seconds (10000 ms) kScanner.start(10000L);在本例中,KIE 扫描程序被配置为以固定间隔运行。最小 KIE 扫描程序轮询的间隔为 1 毫秒 (ms),最大轮询间隔是数据类型
long的最大值。轮询间隔 0 或更少会导致java.lang.IllegalArgumentException: pollingInterval 必须是正错误。您还可以通过调用scanNow ()方法,将 KIE 扫描程序配置为按需运行。示例中的项目组 ID、工件 ID 和版本(GAV)设置定义为
com.sample:my-app:1.0-SNAPSHOT。项目版本必须包含-SNAPSHOT后缀,使 KIE 扫描程序能够检索指定工件版本的最新构建。如果您更改了快照项目版本号,如增加到1.0.1-SNAPSHOT,那么您还必须在 KIE 扫描程序配置中的 GAV 定义中更新版本。KIE 扫描程序不会检索具有静态版本的项目的更新,如com.sample:my-app:1.0。在 Maven 存储库的
settings.xml文件中,将updatePolicy配置设置为always以使 KIE 扫描程序正常工作:<profile> <id>guvnor-m2-repo</id> <repositories> <repository> <id>guvnor-m2-repo</id> <name>BA Repository</name> <url>http://localhost:8080/business-central/maven2/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile>KIE 扫描程序开始轮询后,如果 KIE 扫描程序检测到指定 KIE 容器中
SNAPSHOT项目的更新版本,KIE 扫描程序会自动下载新项目的逐步构建。此时,从 KIE 容器创建的所有新KieBase和KieSession对象都使用新项目版本。有关使用 KIE Server API 启动或停止 KIE 扫描程序的详情,请参考使用 KIE API 与 Red Hat Process Automation Manager 进行交互。