优化 error-code 加载逻辑,失败不影响启动
This commit is contained in:
parent
6be49dae3a
commit
f7a96d5aa0
@ -49,8 +49,12 @@ public class ErrorCodeAutoGeneratorImpl implements ErrorCodeAutoGenerator {
|
|||||||
log.info("[execute][解析到错误码数量为 ({}) 个]", autoGenerateDTOs.size());
|
log.info("[execute][解析到错误码数量为 ({}) 个]", autoGenerateDTOs.size());
|
||||||
|
|
||||||
// 第二步,写入到 system 服务
|
// 第二步,写入到 system 服务
|
||||||
errorCodeApi.autoGenerateErrorCodeList(autoGenerateDTOs).checkError();
|
try {
|
||||||
log.info("[execute][写入到 system 组件完成]");
|
errorCodeApi.autoGenerateErrorCodeList(autoGenerateDTOs).checkError();
|
||||||
|
log.info("[execute][写入到 system 组件完成]");
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("[execute][写入到 system 组件失败({})]", ExceptionUtil.getRootCauseMessage(ex));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.framework.errorcode.core.loader;
|
package cn.iocoder.yudao.framework.errorcode.core.loader;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||||
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
|
||||||
import cn.iocoder.yudao.module.system.api.errorcode.ErrorCodeApi;
|
import cn.iocoder.yudao.module.system.api.errorcode.ErrorCodeApi;
|
||||||
import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO;
|
import cn.iocoder.yudao.module.system.api.errorcode.dto.ErrorCodeRespDTO;
|
||||||
@ -44,33 +45,38 @@ public class ErrorCodeLoaderImpl implements ErrorCodeLoader {
|
|||||||
*/
|
*/
|
||||||
private LocalDateTime maxUpdateTime;
|
private LocalDateTime maxUpdateTime;
|
||||||
|
|
||||||
|
@Override
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
@Async // 异步,保证项目的启动过程,毕竟非关键流程
|
@Async // 异步,保证项目的启动过程,毕竟非关键流程
|
||||||
public void loadErrorCodes() {
|
public void loadErrorCodes() {
|
||||||
this.loadErrorCodes0();
|
loadErrorCodes0();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(fixedDelay = REFRESH_ERROR_CODE_PERIOD, initialDelay = REFRESH_ERROR_CODE_PERIOD)
|
|
||||||
@Override
|
@Override
|
||||||
|
@Scheduled(fixedDelay = REFRESH_ERROR_CODE_PERIOD, initialDelay = REFRESH_ERROR_CODE_PERIOD)
|
||||||
public void refreshErrorCodes() {
|
public void refreshErrorCodes() {
|
||||||
this.loadErrorCodes0();
|
loadErrorCodes0();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadErrorCodes0() {
|
private void loadErrorCodes0() {
|
||||||
// 加载错误码
|
try {
|
||||||
List<ErrorCodeRespDTO> errorCodeRespDTOs = errorCodeApi.getErrorCodeList(applicationName, maxUpdateTime).getCheckedData();
|
// 加载错误码
|
||||||
if (CollUtil.isEmpty(errorCodeRespDTOs)) {
|
List<ErrorCodeRespDTO> errorCodeRespDTOs = errorCodeApi.getErrorCodeList(applicationName, maxUpdateTime).getCheckedData();
|
||||||
return;
|
if (CollUtil.isEmpty(errorCodeRespDTOs)) {
|
||||||
}
|
return;
|
||||||
log.info("[loadErrorCodes0][加载到 ({}) 个错误码]", errorCodeRespDTOs.size());
|
}
|
||||||
|
log.info("[loadErrorCodes0][加载到 ({}) 个错误码]", errorCodeRespDTOs.size());
|
||||||
|
|
||||||
// 刷新错误码的缓存
|
// 刷新错误码的缓存
|
||||||
errorCodeRespDTOs.forEach(errorCodeRespDTO -> {
|
errorCodeRespDTOs.forEach(errorCodeRespDTO -> {
|
||||||
// 写入到错误码的缓存
|
// 写入到错误码的缓存
|
||||||
putErrorCode(errorCodeRespDTO.getCode(), errorCodeRespDTO.getMessage());
|
putErrorCode(errorCodeRespDTO.getCode(), errorCodeRespDTO.getMessage());
|
||||||
// 记录下更新时间,方便增量更新
|
// 记录下更新时间,方便增量更新
|
||||||
maxUpdateTime = DateUtils.max(maxUpdateTime, errorCodeRespDTO.getUpdateTime());
|
maxUpdateTime = DateUtils.max(maxUpdateTime, errorCodeRespDTO.getUpdateTime());
|
||||||
});
|
});
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("[loadErrorCodes0][加载错误码失败({})]", ExceptionUtil.getRootCauseMessage(ex));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user