浏览代码

asyncUpdateProcesInstance ,cause MySQL Dead Lock

cuicui 3 年之前
父节点
当前提交
3b22345603

+ 10 - 1
yudao-module-bpm/yudao-module-bpm-impl-flowable/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java

@@ -30,6 +30,7 @@ import org.flowable.engine.repository.ProcessDefinition;
 import org.flowable.engine.runtime.ProcessInstance;
 import org.flowable.task.api.Task;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -294,7 +295,15 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
         // 补全流程实例的拓展表
         //TODO startProcessInstance流程里面修改了 BpmProcessInstanceExt,没有提交,和下面的更新  锁持有冲突了,异步更新这个表
 //        processInstanceExtMapper.updateByProcessInstanceId(new BpmProcessInstanceExtDO().setProcessInstanceId(instance.getId()).setFormVariables(variables));
-
+        BpmProcessInstanceExtDO bpmProcessInstanceExtDO = new BpmProcessInstanceExtDO().setProcessInstanceId(instance.getId()).setFormVariables(variables);
+        asyncUpdateProcesInstance(bpmProcessInstanceExtDO);
         return instance.getId();
     }
+
+    @Async
+    public void asyncUpdateProcesInstance(BpmProcessInstanceExtDO bpmProcessInstanceExtDO){
+        log.info("asyncUpdateProcesInstance ,cause MySQL Dead Lock");
+        processInstanceExtMapper.updateByProcessInstanceId(bpmProcessInstanceExtDO);
+
+    }
 }