From b502732fded0e0fbcaa300947c1aa75aefbf6ccf Mon Sep 17 00:00:00 2001 From: yaxin Date: Mon, 6 Jan 2025 11:07:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=8C=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E4=B8=AD=EF=BC=8C=E6=A3=80=E6=B5=8B=E5=88=B0A?= =?UTF-8?q?=E6=A1=88=E4=BB=B6=E6=AD=A3=E5=9C=A8=E6=A8=A1=E5=9E=8B=E5=88=86?= =?UTF-8?q?=E6=9E=90=EF=BC=8C=E5=B0=9D=E8=AF=95=E6=AF=8F=E9=9A=945s?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=88=86=E6=9E=90=E7=8A=B6=E6=80=81=EF=BC=8C?= =?UTF-8?q?=E5=BE=85A=E6=A1=88=E4=BB=B6=E6=A8=A1=E5=9E=8B=E5=88=86?= =?UTF-8?q?=E6=9E=90=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E7=BB=A7=E7=BB=AD?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E4=BB=BB=E5=8A=A1=E3=80=82=E8=8B=A5=E8=B6=85?= =?UTF-8?q?=E8=BF=872=E5=88=86=E9=92=9F=E4=BB=8D=E6=9C=AA=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E5=88=A4=E5=AE=9AA=E6=A1=88=E4=BB=B6?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=88=86=E6=9E=90=E5=BC=82=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=BB=A7=E7=BB=AD=E6=89=A7=E8=A1=8CA?= =?UTF-8?q?=E6=A1=88=E4=BB=B6=E6=8F=90=E5=8F=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/supervision/job/XxlJobTask.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/supervision/job/XxlJobTask.java b/src/main/java/com/supervision/job/XxlJobTask.java index 722168f..7b251e1 100644 --- a/src/main/java/com/supervision/job/XxlJobTask.java +++ b/src/main/java/com/supervision/job/XxlJobTask.java @@ -2,13 +2,12 @@ package com.supervision.job; import com.alibaba.fastjson.JSON; import com.supervision.common.constant.XxlJobConstants; +import com.supervision.constant.CaseAnalysisStatusEnum; +import com.supervision.police.domain.ModelCase; import com.supervision.police.domain.NotePrompt; import com.supervision.police.domain.TaskCaseRecord; import com.supervision.police.domain.TaskRecord; -import com.supervision.police.service.CaseEvidenceService; -import com.supervision.police.service.NotePromptService; -import com.supervision.police.service.TaskCaseRecordService; -import com.supervision.police.service.TaskRecordService; +import com.supervision.police.service.*; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.RequiredArgsConstructor; @@ -35,6 +34,8 @@ public class XxlJobTask { private final NotePromptService notePromptService; + private final ModelCaseService modelCaseService; + /** * 睡觉通知 */ @@ -92,7 +93,7 @@ public class XxlJobTask { break; } if (executable) { - + this.modelCaseAnalyzingStatusCheck(caseId); TaskCaseRecord taskCaseRecord = taskCaseRecordService.lambdaQuery().eq(TaskCaseRecord::getCaseId, caseId).eq(TaskCaseRecord::getTaskRecordId, taskId).one(); if (TASK_STATUS_WAITING.equals(taskCaseRecord.getStatus())) { log.info("任务状态为等待中,任务状态更新为处理中,任务案件ID: 【{}】", taskCaseRecord.getId()); @@ -124,4 +125,21 @@ public class XxlJobTask { } } + /** + * 案件模型分析状态检查 + * 先查询案件模型分析状态,如果是分析中,则等待5秒重新查询案件模型分析状态,如果不是分析中,则执行任务,如果仍然是分析中,继续等待5秒。最多等待2分钟。 + */ + private void modelCaseAnalyzingStatusCheck(String caseId) throws InterruptedException { + ModelCase modelCase = modelCaseService.getById(caseId); + int count = 0; + while (CaseAnalysisStatusEnum.ANALYZING.getCode() == modelCase.getCaseAnalysisStatus() && count < 24) { + Thread.sleep(5000); + modelCase = modelCaseService.getById(caseId); + count++; + if (count == 24) { + log.error("案件模型分析状态检查超时,默认继续执行提取任务。案件ID: 【{}】", caseId); + } + } + } + }