diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java index d9917be0..76f67d31 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java @@ -103,7 +103,7 @@ public class FlowStartServiceImpl extends ServiceImpl threads = new ArrayList<>(); + List threadInitFlowRecords = new ArrayList<>(); @@ -811,9 +811,10 @@ public class FlowStartServiceImpl extends ServiceImpl resultRecords, List noticeStaff){ if(resultRecords.size() > 0){ ThreadInitFlowRecord threadInitFlowRecord = new ThreadInitFlowRecord(resultRecords, noticeStaff); + threadInitFlowRecords.add(threadInitFlowRecord);//防止提前回收 Thread thread = new Thread(threadInitFlowRecord); thread.start(); - threads.add(threadInitFlowRecord); + } } @@ -841,7 +842,7 @@ public class FlowStartServiceImpl extends ServiceImpl threadSendMessages = new ArrayList<>(); + @Value("${dingtalk.appid}") private String appid; @@ -257,8 +259,10 @@ public class DingtalkBusiness { WorkMsgTypeEnum workMsgTypeEnum = WorkMsgTypeEnum.findRoleTypeByCode(type); ThreadSendMessage threadSendMessage = new ThreadSendMessage(fromStaff, toStaffids, workMsgTypeEnum, appid); + threadSendMessages.add(threadSendMessage);//防止提前回收 Thread thread = new Thread(threadSendMessage); thread.start(); + return "OK"; } return "error"; @@ -391,6 +395,7 @@ public class DingtalkBusiness { logger.info("ThreadSendMessage token无效"); ; } } + threadSendMessages.remove(this); } } }