处理国际化文件频繁加载导致java.net.SocketException: Too many open files的问题

This commit is contained in:
zhangdongxu
2018-12-19 17:45:03 +08:00
parent 90fc989831
commit 0e6ba4a68c
14 changed files with 129 additions and 119 deletions

View File

@@ -749,11 +749,13 @@ public class BaseController {
try {
String language = LocaleContextHolder.getLocale().getLanguage();
if (language.equals("zh_cn") || language.equals("zh")) {
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_zh_CN.properties"));
} else if (language.equals("ru")) {
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_ru.properties"));
} else {
msgProp.load(Configurations.class.getResourceAsStream("/messages/message_en.properties"));
if (language.equals("zh_cn") || language.equals("zh")) {
msgProp=Configurations.getMsgPropZh();
} else if (language.equals("ru")) {
msgProp=Configurations.getMsgPropRu();
} else {
msgProp=Configurations.getMsgPropEn();
}
}
} catch (Exception e) {
@@ -1918,57 +1920,58 @@ public class BaseController {
* @param serviceDict
*/
public void loadTemplate(ImportBigExcel ei,FunctionRegionDict regionDict,FunctionServiceDict serviceDict) {
Properties msgProp = this.getMsgProp();
if (regionDict.getRegionType().equals(1)) {// IP
if (regionDict.getFunctionId().equals(5)) {
if (serviceDict!=null&&serviceDict.getAction().equals(64)) {
ei.loadInitParams(IpRateLimitTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(IpRateLimitTemplate.class, msgProp, regionDict, serviceDict);
} else {
ei.loadInitParams(IpAllTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(IpAllTemplate.class, msgProp, regionDict, serviceDict);
}
} else if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
ei.loadInitParams(DnsIpTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DnsIpTemplate.class, msgProp, regionDict, serviceDict);
}else if(regionDict.getFunctionId().equals(401)) {
ei.loadInitParams(DnsIpTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DnsIpTemplate.class, msgProp, regionDict, serviceDict);
}else if (regionDict.getFunctionId().equals(212)) {
ei.loadInitParams(IpPayloadTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(IpPayloadTemplate.class, msgProp, regionDict, serviceDict);
} else if (regionDict.getFunctionId().equals(510)
&& "p2p_ip".equals(regionDict.getConfigServiceType())) { // P2p IP
ei.loadInitParams(P2pIpTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(P2pIpTemplate.class, msgProp, regionDict, serviceDict);
} else if (regionDict.getFunctionId().equals(600)) {// ASN IP
ei.loadInitParams(AsnIpTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(AsnIpTemplate.class, msgProp, regionDict, serviceDict);
} else if (regionDict.getFunctionId().equals(301)) {// DDOS IP
ei.loadInitParams(DdosIpTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DdosIpTemplate.class, msgProp, regionDict, serviceDict);
} else {
ei.loadInitParams(IpAllTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(IpAllTemplate.class, msgProp, regionDict, serviceDict);
}
} else if (regionDict.getRegionType().equals(2)) {// 字符串类
if (regionDict.getFunctionId().equals(510)
&& "p2p_hash".equals(regionDict.getConfigServiceType())) { // P2p hash
ei.loadInitParams(P2pHashStringTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(P2pHashStringTemplate.class, msgProp, regionDict, serviceDict);
}else if (regionDict.getFunctionId().equals(403)) {
ei.loadInitParams(AppDomainTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(AppDomainTemplate.class, msgProp, regionDict, serviceDict);
} else if(regionDict.getFunctionId().equals(201)){// Domain Intercept
if(serviceDict.getAction().equals(1)){// 监测
ei.loadInitParams(DomainInterceptMonitTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DomainInterceptMonitTemplate.class, msgProp, regionDict, serviceDict);
}else if(serviceDict.getAction().equals(64)){// 限速
ei.loadInitParams(DomainInterceptRateLimitTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DomainInterceptRateLimitTemplate.class, msgProp, regionDict, serviceDict);
}else{// 白名单
ei.loadInitParams(DomainInterceptTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DomainInterceptTemplate.class, msgProp, regionDict, serviceDict);
}
} else {
ei.loadInitParams(StringAllTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(StringAllTemplate.class, msgProp, regionDict, serviceDict);
}
} else if (regionDict.getRegionType().equals(3)) {// 增强字符串类
if (regionDict.getFunctionId().equals(7)&&serviceDict!=null&&serviceDict.getAction().intValue()==16) {
ei.loadInitParams(DnsComplexStringTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DnsComplexStringTemplate.class, msgProp, regionDict, serviceDict);
} else {
ei.loadInitParams(ComplexStringAllTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(ComplexStringAllTemplate.class, msgProp, regionDict, serviceDict);
}
}else if (regionDict.getRegionType().equals(6)) {// 回调类
if (regionDict.getFunctionId().equals(400)) {
ei.loadInitParams(DnsResStrategyTemplate.class, this.getMsgProp(), regionDict, serviceDict);
ei.loadInitParams(DnsResStrategyTemplate.class, msgProp, regionDict, serviceDict);
}
}