Activiti5用户手册---Events-Signal Event examples

Signal Event examples


Activiti5用户手册---Events-Signal Event examples_第1张图片
 
Activiti5用户手册---Events-Signal Event examples_第2张图片
 
Activiti5用户手册---Events-Signal Event examples_第3张图片

说明:明白一个信号事件传播到所有的活动是很重要的。这意思是说在上述给出的例子中,所有流程的实例捕获的信号可以都可以到达事件。这种情况下,这就是我们所需要的。然而,也有某种情况,广播的接收者是不明确的。如下例子

 

 
Activiti5用户手册---Events-Signal Event examples_第4张图片
 

上述的模式在Activiti中是不被支持的。当任务执行到do something的时候抛出了一个错误,这错误被边界错误事件所捕获,而且会以一个信号抛出,传递到并行的执行路径上并且会打断do something in parallel任务的执行。这和我们预料的演示相差很远。信号会传递到捕获边界事件并打断任务。然而,基于信号的广播语义,信号也会传递到所有其他流程实例中信号事件的订阅者上。这情况可能是我们并不想要的。

说明:信号事件不是扮演的任何相关的特定流程实例。相反的,他广播到所有的流程实例中。如果你需要发送一个信号到一个特定的流程实例中,可以手动的使用signalEventReceived(String signalName,String executionId)和适当的查询机制。

你可能感兴趣的:(activiti5)