增加失败重试

This commit is contained in:
zren25
2025-04-08 18:13:48 +08:00
parent 2b2a5acc6c
commit fdb0531f0c

View File

@@ -67,7 +67,8 @@ public class CorpusFailJob {
@Value("${rocketmq.producer.corpus.dcctopic}")
private String dccMqTipic;
@Value("${rocketmq.consumer.intelligentCustomer.topic}")
private String intelligentCustomerTipic;
@Autowired
private TmTelephoneCorpusMapper tmTelephoneCorpusMapper;
@@ -183,4 +184,61 @@ public class CorpusFailJob {
aiAnalysisErrorsService.update(aiAnalysisErrors,
new LambdaQueryWrapper<AiAnalysisErrors>().eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisRequestId));
}
/**
* 智能客服-四合一
*/
@XxlJob("intelligentCustomer4in1FailTask")
@PostMapping("intelligentCustomer4in1FailTask")
public void intelligentCustomer4in1() {
log.info(" INTELLIGENT_CUSTOMER_4IN1 解析失败重试处理");
Integer total = aiAnalysisErrorsService.queryCountAnalysisErrorList(BusinessTypeEnum.INTELLIGENT_CUSTOMER.getCode());
log.info("INTELLIGENT_CUSTOMER_4IN1 语料解析失败重试处理数据量:{}", total);
int totalPages = PageDto.getTotalPages(total, pageSize);
log.info("INTELLIGENT_CUSTOMER_4IN1 语料解析失败重试处理数据量:{},总页数:{}", total, totalPages);
for (int i = 1; i <= totalPages; i++) {
int offset = (i - 1) * pageSize;
List<AiAnalysisErrors> aiAnalysisErrorsListlist = aiAnalysisErrorsService.queryAnalysisErrorList(BusinessTypeEnum.INTELLIGENT_CUSTOMER.getCode(),offset, pageSize);
if(CollectionUtils.isNotEmpty(aiAnalysisErrorsListlist)) {
log.info("语料解析失败重试处理 size:{}", aiAnalysisErrorsListlist.size());
aiAnalysisErrorsListlist.stream().forEach(aiAnalysisErrors -> {
try {
LambdaQueryWrapper<AiAnalysisRequestLogs> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisErrors.getAiAnalysisRequestId());
AiAnalysisRequestLogs oldAiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne(queryWrapper);
if (null != oldAiAnalysisRequestLogs) {
JSONObject businessRequest = JSONObject.parseObject(oldAiAnalysisRequestLogs.getBusinessRequest());
businessRequest.put("aiAnalysisRequestId", oldAiAnalysisRequestLogs.getAiAnalysisRequestId());
String message = businessRequest.toJSONString();
rocketMqTemplate.asyncSend(intelligentCustomerTipic, MessageBuilder.withPayload(message).build(),
new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
log.info(" INTELLIGENT_CUSTOMER_4IN1 失败补偿 发送MQ成功 消息体:{}", message);
}
@Override
public void onException(Throwable e) {
log.error("INTELLIGENT_CUSTOMER_4IN1 失败补偿 送MQ异常 消息体:{}, 异常:", message, e);
}
}, 10000);
}
} catch (Exception e) {
log.info("INTELLIGENT_CUSTOMER_4IN1 语料解析失败补偿异常:{}", e);
aiAnalysisErrors.setAiAnalysisErrorHandlingStatus("0");
aiAnalysisErrors.setRetryCount(aiAnalysisErrors.getRetryCount() + 1);
updateAiAnalysisErrors(aiAnalysisErrors, aiAnalysisErrors.getAiAnalysisRequestId());
}
});
}
}
}
}