我已经用 KnowledgeRuntime注册了 AsyncHornetQHTWorkItemHandler
AsyncHornetQTaskClient asyncHornetQTaskClient=new AsyncHornetQTaskClient("Async-Task-ProcEngine-Client");
AsyncHornetQHTWorkItemHandler asyncHornetQHTWorkItemHandler = new AsyncHornetQHTWorkItemHandler(asyncHornetQTaskClient,knowledgeSession, OnErrorAction.RETHROW);
asyncHornetQHTWorkItemHandler.setPort(5445);
asyncHornetQHTWorkItemHandler.setIpAddress("localhost");
logger.debug("Asycnhronous work-item-handler connecting....");
asyncHornetQHTWorkItemHandler.connect();
logger.debug("Asycnhronous work-item-handler connected.");
knowledgeSession.getWorkItemManager().registerWorkItemHandler("Human Task", asyncHornetQHTWorkItemHandler);
BaseHornetQTaskServer 配置为使用运行@端口 5445 的独立HornetQ 服务器
public CustomHornetQTaskServer(TaskService service, String host, int port) {
super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), host, port, true);
}
创建流程实例时,在任务数据库中成功创建人工任务。
我正在使用我的 Web 应用程序中的AsyncHornetQTaskClient(用SyncTaskServiceWrapper包装)对任务执行(完成、跳过等)。
TaskService client = new SyncTaskServiceWrapper(new AsyncHornetQTaskClient("Async-Task-Client"));
client.connect("127.0.0.1", 5445);
return client;
流程引擎托管在单独的 VM 中,以作为守护程序/后台服务运行。人工任务服务嵌入在我托管在 Jboss 7 中的 Web 应用程序中。
守护程序服务中的KnowledgeRuntime.WorkItemManager将如何获取工作项已完成的事件?
我应该明确调用KnowledgeRuntime.getWorkItemManager().completeWorkItem 吗?
环境:JBPM 5.4.0.Final,HornetQ 2.2.14.Final,Jboss 7