异步创建并调用提取任务

master
yaxin 3 months ago
parent 7d35492df5
commit 69ed1095b8

@ -103,13 +103,13 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
taskRecord.setType(TASK_TYPE_ONE_CLICK); taskRecord.setType(TASK_TYPE_ONE_CLICK);
taskRecord.setName(this.generateTaskName(taskRecord.getType())); taskRecord.setName(this.generateTaskName(taskRecord.getType()));
super.save(taskRecord); super.save(taskRecord);
notePromptService.list(new LambdaQueryWrapper<NotePrompt>().eq(NotePrompt::getType, TYPE_GRAPH_REASONING).or().eq(NotePrompt::getType, TYPE_STRUCTURAL_REASONING)).forEach(notePrompt -> { //异步调用xxl-job执行任务
try { Thread thread = new Thread(() -> {
NotePrompt prompt = notePromptService.getById(notePrompt.getId()); notePromptService.list(new LambdaQueryWrapper<NotePrompt>().eq(NotePrompt::getType, TYPE_GRAPH_REASONING).or().eq(NotePrompt::getType, TYPE_STRUCTURAL_REASONING)).forEach(notePrompt -> {
List<ModelCase> modelCases = this.getModelCases(taskRecord); try {
if (!CollUtil.isEmpty(modelCases)) { NotePrompt prompt = notePromptService.getById(notePrompt.getId());
//异步调用xxl-job执行任务 List<ModelCase> modelCases = this.getModelCases(taskRecord);
Thread thread = new Thread(() -> { if (!CollUtil.isEmpty(modelCases)) {
for (ModelCase modelCase : modelCases) { for (ModelCase modelCase : modelCases) {
String caseId = modelCase.getId(); String caseId = modelCase.getId();
List<String> ids = this.getIds(taskRecord, caseId, prompt.getType()); List<String> ids = this.getIds(taskRecord, caseId, prompt.getType());
@ -120,17 +120,17 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
log.info("案件【{}】没有笔录或证据", caseId); log.info("案件【{}】没有笔录或证据", caseId);
} }
} }
}); } else {
thread.start(); log.info("查无案件");
} else { }
log.info("查无案件"); } catch (Exception e) {
taskRecord.setStatus(TASK_STATUS_FAIL);
super.updateById(taskRecord);
log.error("任务执行失败", e);
} }
} catch (Exception e) { });
taskRecord.setStatus(TASK_STATUS_FAIL);
super.updateById(taskRecord);
log.error("任务执行失败", e);
}
}); });
thread.start();
stopWatch.stop(); stopWatch.stop();
log.info("一键提取任务触发完成。耗时:{}", stopWatch.getTotalTimeSeconds()); log.info("一键提取任务触发完成。耗时:{}", stopWatch.getTotalTimeSeconds());
} }
@ -316,7 +316,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
@Override @Override
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class) @Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
public void completeTask(String taskId, String executeId,String promptId, boolean isSuccess) { public void completeTask(String taskId, String executeId, String promptId, boolean isSuccess) {
if (StrUtil.isEmpty(taskId)) { if (StrUtil.isEmpty(taskId)) {
log.info("completeTask:任务ID为空"); log.info("completeTask:任务ID为空");
return; return;
@ -331,7 +331,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
return; return;
} }
TaskCaseRecord taskCaseRecord = taskCaseRecordService.updateStatus(taskId, executeId,promptId, isSuccess); TaskCaseRecord taskCaseRecord = taskCaseRecordService.updateStatus(taskId, executeId, promptId, isSuccess);
log.info("completeTask:任务ID:【{}】执行ID:【{}】,任务状态:【{}】", taskId, executeId, taskCaseRecord.getStatus()); log.info("completeTask:任务ID:【{}】执行ID:【{}】,任务状态:【{}】", taskId, executeId, taskCaseRecord.getStatus());
// 校验总体任务是否是取消中 // 校验总体任务是否是取消中
if (StrUtil.equalsAny(taskRecord.getStatus(), TASK_STATUS_CANCELLING, TASK_STATUS_CANCELED)) { if (StrUtil.equalsAny(taskRecord.getStatus(), TASK_STATUS_CANCELLING, TASK_STATUS_CANCELED)) {
@ -351,7 +351,7 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
log.info("completeTask:任务ID:【{}】,初始任务案件状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(), taskStatus); log.info("completeTask:任务ID:【{}】,初始任务案件状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(), taskStatus);
if (!StrUtil.equals(taskStatus, taskRecord.getStatus())) { if (!StrUtil.equals(taskStatus, taskRecord.getStatus())) {
taskRecord.setStatus(taskStatus); taskRecord.setStatus(taskStatus);
if (StrUtil.equals(taskStatus, TASK_STATUS_SUCCESS)){ if (StrUtil.equals(taskStatus, TASK_STATUS_SUCCESS)) {
taskRecord.setFinishTime(LocalDateTime.now()); taskRecord.setFinishTime(LocalDateTime.now());
} }
super.updateById(taskRecord); super.updateById(taskRecord);

Loading…
Cancel
Save