我有活动的过程,这似乎不像我所期望的那样。
过程非常简单:
My problem:启动4个这样的进程,使用1个信号。当这个信号被发送时,所有的四个都应该结束。但事实并非如此。他们似乎是随机结束的?有时1或2结束,但从来没有全部.我没有错误/例外,我不知道什么是错的.似乎有些进程无法捕捉到发送给它们的信号。为什么会这样呢?
过程模式:

发布于 2017-01-31 18:36:16
您是否在“检查捕获信号条件”中添加了日志记录,以确定是否所有信号实际上都触发了此步骤?此外,您还可以查询信号订阅,以确定是否有您预期的数量:
列表执行= runtimeService.createExecutionQuery() .signalEventSubscriptionName(“警报”) .list();
我希望您的检查逻辑没有正确处理,或者您没有“令牌”等待信号。
格雷格
发布于 2017-01-31 19:20:24
我创建了简单的jUnit测试,该测试基于已存在的可流动项目中的信号边界事件测试(应该以与activiti相同的方式运行)。
@Deployment(resources = "org/activiti/engine/test/bpmn/event/signal/SignalEventTest.testSignalBoundaryOnSubProcess.bpmn20.xml")
public void testMultipleCatchEventsOnSubProcess() {
ProcessInstance processInstance1 = runtimeService.startProcessInstanceByKey("signalEventOnSubprocess");
ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey("signalEventOnSubprocess");
ProcessInstance processInstance3 = runtimeService.startProcessInstanceByKey("signalEventOnSubprocess");
assertThat("There must be three subscriptions to the signal.", createEventSubscriptionQuery().count(), is(3L));
runtimeService.signalEventReceived("stopSignal");
assertProcessEnded(processInstance1.getProcessInstanceId());
assertProcessEnded(processInstance2.getProcessInstanceId());
assertProcessEnded(processInstance3.getProcessInstanceId());
}测试通过了。您能否创建失败的jUnit测试来重现问题(与依赖关系)?
马丁
https://stackoverflow.com/questions/41956699
复制相似问题