强刷多语言本地缓存
This commit is contained in:
@@ -142,6 +142,7 @@ public class I18NMessageSourceUtil {
|
||||
MessageI18nNacosService messageI18nNacosService = SpringContextHolder.getBean(MessageI18nNacosService.class);
|
||||
ThreadPoolExecutor bizExecutor = SpringContextHolder.getBean(ThreadPoolExecutor.class);
|
||||
Class<?> clazz = obj.getClass();
|
||||
Set<Locale> refreshLocalSet = new HashSet<>();
|
||||
for (Field field : clazz.getDeclaredFields()) {
|
||||
String fieldName = field.getName();
|
||||
if (fieldNames.contains(fieldName)) {
|
||||
@@ -162,7 +163,9 @@ public class I18NMessageSourceUtil {
|
||||
// 需要保存的值
|
||||
String i18nValue = jsonObject.getString(key);
|
||||
if (StringUtils.isNoneBlank(i18nValue)) {
|
||||
messageI18nNacosService.saveOrUpdate(new Locale(key), i18nKey, i18nValue);
|
||||
Locale locale = new Locale(key);
|
||||
refreshLocalSet.add(locale);
|
||||
messageI18nNacosService.saveOrUpdate(locale, i18nKey, i18nValue);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("I18NMessageSourceUtil save exception lang {} key {} ,{}",
|
||||
@@ -177,6 +180,9 @@ public class I18NMessageSourceUtil {
|
||||
field.set(obj, zhValue);
|
||||
}
|
||||
}
|
||||
if (refreshLocalSet.size() > 0) {
|
||||
messageI18nNacosService.refreshForce(refreshLocalSet);
|
||||
}
|
||||
//SpringContextHolder.getBean(I18nMessageNacosAutoConfig.class).initTip();
|
||||
}
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
package com.accompany.core.service;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.core.base.SpringContextHolder;
|
||||
import com.accompany.core.config.I18nMessageConfig;
|
||||
import com.alibaba.cloud.nacos.NacosConfigManager;
|
||||
import com.alibaba.cloud.nacos.NacosConfigProperties;
|
||||
import com.alibaba.nacos.api.NacosFactory;
|
||||
import com.alibaba.nacos.api.config.ConfigService;
|
||||
import com.alibaba.nacos.api.exception.NacosException;
|
||||
import lombok.Getter;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -19,10 +19,7 @@ import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @ClassName MessageConfService
|
||||
@@ -148,4 +145,15 @@ public class MessageI18nNacosService implements InitializingBean {
|
||||
i18nNacosConfigService = NacosFactory.createConfigService(i18nNacosServiceConfig.assembleConfigServiceProperties());
|
||||
}
|
||||
|
||||
public void refreshForce(Set<Locale> refreshLocalSet) {
|
||||
try {
|
||||
// 触发所有相关locale的配置刷新
|
||||
for (Locale locale : refreshLocalSet) {
|
||||
i18nNacosConfigService.getConfig(getMessageFileName(locale.getLanguage()), GROUP, 5000);
|
||||
}
|
||||
} catch (NacosException e) {
|
||||
log.warn("强制刷新Nacos配置失败,可能读取到旧值", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user