任务执行过程中,检测到A案件正在模型分析,尝试每隔5s查询分析状态,待A案件模型分析成功后,继续提取任务。若超过2分钟仍未完成,判定A案件模型分析异常,任务继续执行A案件提取。

master
yaxin 4 months ago
parent 0e5ef9da7e
commit b502732fde

@ -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 {
}
}
/**
*
* 552
*/
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);
}
}
}
}

Loading…
Cancel
Save