From 2c5cd2a2814e5c8134b42002b06291056f5f6f10 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 26 Apr 2024 21:03:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E6=95=88=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9D=9F=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E7=9B=B8=E5=85=B3=E4=BD=9C=E4=B8=9A=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8D=B8=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1143606692249600]工单时效任务结束后,相关作业没有卸载 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1143606692249600 --- .../process/thread/ProcessTaskSlaThread.java | 97 ++++++++++++++++--- 1 file changed, 84 insertions(+), 13 deletions(-) diff --git a/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java b/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java index 6920f515c..3f4da9be2 100644 --- a/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java +++ b/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java @@ -62,6 +62,8 @@ public class ProcessTaskSlaThread extends NeatLogicThread { private static ProcessTaskMapper processTaskMapper; private static ProcessTaskSlaMapper processTaskSlaMapper; private static TransactionUtil transactionUtil; + + private static SchedulerManager schedulerManager; // private static ProcessTaskService processTaskService; // @Resource @@ -84,6 +86,11 @@ public class ProcessTaskSlaThread extends NeatLogicThread { transactionUtil = _transactionUtil; } + @Resource + public void setSchedulerManager(SchedulerManager _schedulerManager) { + schedulerManager = _schedulerManager; + } + private ProcessTaskStepVo currentProcessTaskStepVo; private ProcessTaskVo currentProcessTaskVo; @@ -219,30 +226,57 @@ public class ProcessTaskSlaThread extends NeatLogicThread { private void adjustJob(ProcessTaskSlaTimeVo slaTimeVo, JSONObject slaConfigObj, boolean expireTimeHasChanged) { Long slaId = slaTimeVo.getSlaId(); /* 作业是否已启动 **/ - boolean jobStarted = false; List processTaskSlaNotifyList = processTaskSlaMapper.getProcessTaskSlaNotifyBySlaId(slaId); List processTaskSlaTransferList = processTaskSlaMapper.getProcessTaskSlaTransferBySlaId(slaId); - if (CollectionUtils.isNotEmpty(processTaskSlaNotifyList) || CollectionUtils.isNotEmpty(processTaskSlaTransferList)) { - jobStarted = true; - } String status = slaTimeVo.getStatus(); if (SlaStatus.DOING.toString().toLowerCase().equals(status)) { - if (jobStarted) { - if (expireTimeHasChanged) { + if (expireTimeHasChanged) { // System.out.println("删除时效id=" + slaId + "的job,因为超时时间点变了"); + if (CollectionUtils.isNotEmpty(processTaskSlaTransferList)) { processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); + } + if (CollectionUtils.isNotEmpty(processTaskSlaNotifyList)) { processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); - loadJobNotifyAndtransfer(slaId, slaConfigObj); } - } else { - loadJobNotifyAndtransfer(slaId, slaConfigObj); } + loadJobNotifyAndtransfer(slaId, slaConfigObj); } else { - if (jobStarted) { // System.out.println("删除时效id=" + slaId + "的job,因为status=" + status); - processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); + if (CollectionUtils.isNotEmpty(processTaskSlaNotifyList)) { + IJob jobHandler = SchedulerManager.getHandler(ProcessTaskSlaNotifyJob.class.getName()); + if (jobHandler != null) { + for (ProcessTaskSlaNotifyVo processTaskSlaNotifyVo : processTaskSlaNotifyList) { + JobObject.Builder jobObjectBuilder = + new JobObject.Builder( + processTaskSlaNotifyVo.getId().toString(), + jobHandler.getGroupName(), + jobHandler.getClassName(), + TenantContext.get().getTenantUuid() + ); + JobObject jobObject = jobObjectBuilder.build(); + schedulerManager.unloadJob(jobObject); + } + } + processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); } + if (CollectionUtils.isNotEmpty(processTaskSlaTransferList)) { + IJob jobHandler = SchedulerManager.getHandler(ProcessTaskSlaTransferJob.class.getName()); + if (jobHandler != null) { + for (ProcessTaskSlaTransferVo processTaskSlaTransferVo : processTaskSlaTransferList) { + JobObject.Builder jobObjectBuilder = + new JobObject.Builder( + processTaskSlaTransferVo.getId().toString(), + jobHandler.getGroupName(), + jobHandler.getClassName(), + TenantContext.get().getTenantUuid() + ); + JobObject jobObject = jobObjectBuilder.build(); + schedulerManager.unloadJob(jobObject); + } + } + processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); + } } } @@ -352,9 +386,46 @@ public class ProcessTaskSlaThread extends NeatLogicThread { } private void deleteSlaById(Long slaId) { + List processTaskSlaNotifyList = processTaskSlaMapper.getProcessTaskSlaNotifyBySlaId(slaId); + List processTaskSlaTransferList = processTaskSlaMapper.getProcessTaskSlaTransferBySlaId(slaId); + if (CollectionUtils.isNotEmpty(processTaskSlaNotifyList)) { + IJob jobHandler = SchedulerManager.getHandler(ProcessTaskSlaNotifyJob.class.getName()); + if (jobHandler != null) { + for (ProcessTaskSlaNotifyVo processTaskSlaNotifyVo : processTaskSlaNotifyList) { + JobObject.Builder jobObjectBuilder = + new JobObject.Builder( + processTaskSlaNotifyVo.getId().toString(), + jobHandler.getGroupName(), + jobHandler.getClassName(), + TenantContext.get().getTenantUuid() + ); + JobObject jobObject = jobObjectBuilder.build(); + schedulerManager.unloadJob(jobObject); + } + } + + processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); + } + if (CollectionUtils.isNotEmpty(processTaskSlaTransferList)) { + IJob jobHandler = SchedulerManager.getHandler(ProcessTaskSlaTransferJob.class.getName()); + if (jobHandler != null) { + for (ProcessTaskSlaTransferVo processTaskSlaTransferVo : processTaskSlaTransferList) { + JobObject.Builder jobObjectBuilder = + new JobObject.Builder( + processTaskSlaTransferVo.getId().toString(), + jobHandler.getGroupName(), + jobHandler.getClassName(), + TenantContext.get().getTenantUuid() + ); + JobObject jobObject = jobObjectBuilder.build(); + schedulerManager.unloadJob(jobObject); + } + } + processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); + } +// processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); +// processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); processTaskSlaMapper.deleteProcessTaskSlaTimeBySlaId(slaId); - processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); - processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); } /** -- Gitee From c1aabdf919a19a27763372c3cdaca705dfe557a7 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 26 Apr 2024 21:06:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E6=95=88=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9D=9F=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E7=9B=B8=E5=85=B3=E4=BD=9C=E4=B8=9A=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8D=B8=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1143606692249600]工单时效任务结束后,相关作业没有卸载 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1143606692249600 --- .../neatlogic/module/process/thread/ProcessTaskSlaThread.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java b/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java index 3f4da9be2..13141df60 100644 --- a/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java +++ b/src/main/java/neatlogic/module/process/thread/ProcessTaskSlaThread.java @@ -423,8 +423,6 @@ public class ProcessTaskSlaThread extends NeatLogicThread { } processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); } -// processTaskSlaMapper.deleteProcessTaskSlaTransferBySlaId(slaId); -// processTaskSlaMapper.deleteProcessTaskSlaNotifyBySlaId(slaId); processTaskSlaMapper.deleteProcessTaskSlaTimeBySlaId(slaId); } -- Gitee