我需要在我的流程中创建并行运行服务任务。
尝试使用异步属性用法创建最简单的流:
循环基数= 5(例如)
我发现在activiti.xml
配置中需要添加此属性:
<property name="asyncExecutorActivate" value="true" />
但是流程仍在一个线程中运行。
我失踪了什么?
如何正确激活异步?
答案 0 :(得分:1)
在上面的示例中激活异步并行执行 - 需要在Call Service
而不是Sub Process
上设置异步
一旦我们使用async
,我们就必须将流程引擎配置为异步
否则你会遇到这个例外之王:
org.activiti.engine.ActivitiOptimisticLockingException:VariableInstanceEntity [id = 15317,name = nrOfActiveInstances,type = integer,longValue = 1,textValue = 1]由另一个事务同时更新
此处存储的wso2bps上的activiti引擎参数:conf/activiti.xml
只需将以下属性添加到bean id =“processEngineConfiguration”
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
...
<property name="asyncExecutorActivate" value="true" />
<property name="asyncExecutorEnabled" value="true" />
...
</bean>
警告:不知道它的功能还是错误。只有在子进程的
async
上设置end events
时,子进程才会正确捕获所有线程结尾...
在这些更改之后,来自问题的过程在多线程模式下运行良好。