【feat】 优化ORG连接问题

This commit is contained in:
Kris 2025-08-19 10:44:47 +08:00
parent 24474a2c8a
commit b4607439a3
2 changed files with 151 additions and 128 deletions

View File

@ -18,6 +18,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.TimeUnit;
/** /**
* @author Red * @author Red
@ -31,12 +32,14 @@ public class SalesforceConnect {
@Resource @Resource
private CustomMapper customerMapper; private CustomMapper customerMapper;
/** /**
* 创建连接 * 创建连接
* @return * @return
*/ */
public PartnerConnection createConnect() { public PartnerConnection createConnect() {
int failCount = 0;
//重试连接次数
while (true){
try { try {
List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null); List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null);
//遍历poll,找出code值为SOURCE_ORG_URLSOURCE_ORG_USERNAMESOURCE_ORG_PASSWORD的value值 //遍历poll,找出code值为SOURCE_ORG_URLSOURCE_ORG_USERNAMESOURCE_ORG_PASSWORD的value值
@ -64,19 +67,31 @@ public class SalesforceConnect {
config.setReadTimeout(60 * 60 * 1000); config.setReadTimeout(60 * 60 * 1000);
return new PartnerConnection(config); return new PartnerConnection(config);
} catch (ConnectionException e) { } catch (ConnectionException e) {
String message = "源ORG连接配置错误"; failCount ++;
log.error("源ORG连接异常休眠一分钟再次发起重试~~", e);
try {
TimeUnit.MINUTES.sleep(1);
}catch (InterruptedException ie) {
log.error("休眠异常", ie);
}
if (failCount > 3) {
String message = "源ORG三次重试连接错误";
String format = String.format("ORG连接异常, \ncause:\n%s", message); String format = String.format("ORG连接异常, \ncause:\n%s", message);
EmailUtil.send("DataDump ERROR", format); EmailUtil.send("DataDump ERROR", format);
log.error("exception message", e); log.error("exception message", e);
return null;
} }
} }
}
}
/** /**
* 创建Bulk连接 * 创建Bulk连接
* @author kris * @author kris
*/ */
public BulkConnection createBulkConnect() { public BulkConnection createBulkConnect() {
int failCount = 0;
while (true){
try { try {
List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null); List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null);
//遍历poll,找出code值为SOURCE_ORG_URLSOURCE_ORG_USERNAMESOURCE_ORG_PASSWORD的value值 //遍历poll,找出code值为SOURCE_ORG_URLSOURCE_ORG_USERNAMESOURCE_ORG_PASSWORD的value值
@ -92,26 +107,21 @@ public class SalesforceConnect {
map.put("password", String.valueOf(map1.get("value"))); map.put("password", String.valueOf(map1.get("value")));
} }
} }
//
// String username = map.get("username");
// ConnectorConfig config = new ConnectorConfig();
// config.setUsername(username);
// config.setPassword(map.get("password"));
// String url = map.get("url");
// config.setAuthEndpoint(url);
// config.setServiceEndpoint(url);
// config.setConnectionTimeout(60 * 60 * 1000);
// config.setReadTimeout(60 * 60 * 1000);
// PartnerConnection connection = new PartnerConnection(config);
// config.setRestEndpoint(url);
// config.setSessionId(connection.getSessionHeader().getSessionId());
return BulkUtil.getBulkConnection(map.get("username"),map.get("password"),map.get("url")); return BulkUtil.getBulkConnection(map.get("username"),map.get("password"),map.get("url"));
} catch (Exception e) { } catch (Exception e) {
String message = "源ORG连接配置错误"; failCount ++;
log.error("源ORG连接异常休眠一分钟再次发起重试~~", e);
try {
TimeUnit.MINUTES.sleep(1);
}catch (InterruptedException ie) {
log.error("休眠异常", ie);
} if (failCount > 3) {
String message = "源ORG三次重试连接错误";
String format = String.format("ORG连接异常, \ncause:\n%s", message); String format = String.format("ORG连接异常, \ncause:\n%s", message);
EmailUtil.send("DataDump ERROR", format); EmailUtil.send("DataDump ERROR", format);
log.error("exception message", e); log.error("exception message", e);
return null; }
}
} }
} }

View File

@ -18,6 +18,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.TimeUnit;
@Component @Component
@Slf4j @Slf4j
@ -31,6 +32,9 @@ public class SalesforceTargetConnect {
* @return * @return
*/ */
public PartnerConnection createConnect() { public PartnerConnection createConnect() {
int failCount = 0;
//重试连接次数
while (true){
try { try {
List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null); List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null);
//遍历poll,找出code值为TARGET_ORG_URLTARGET_ORG_USERNAMETARGET_ORG_PASSWORD的value值 //遍历poll,找出code值为TARGET_ORG_URLTARGET_ORG_USERNAMETARGET_ORG_PASSWORD的value值
@ -60,12 +64,23 @@ public class SalesforceTargetConnect {
String orgId = connection.getUserInfo().getOrganizationId(); String orgId = connection.getUserInfo().getOrganizationId();
return connection; return connection;
} catch (ConnectionException e) { } catch (ConnectionException e) {
String message = "目标ORG连接配置错误"; failCount++;
log.error("目标ORG连接异常休眠一分钟再次发起重试~~", e);
try {
TimeUnit.MINUTES.sleep(1);
}catch (InterruptedException ie) {
log.error("休眠异常", ie);
} if (failCount > 3) {
String message = "目标ORG三次重试连接错误";
String format = String.format("ORG连接异常, \ncause:\n%s", message); String format = String.format("ORG连接异常, \ncause:\n%s", message);
EmailUtil.send("DataDump ERROR", format); EmailUtil.send("DataDump ERROR", format);
log.error("exception message", e); log.error("exception message", e);
return null; return null;
} }
}
}
} }
/** /**
@ -73,6 +88,9 @@ public class SalesforceTargetConnect {
* @author kris * @author kris
*/ */
public BulkConnection createBulkConnect() { public BulkConnection createBulkConnect() {
int failCount = 0;
while (true){
//重试连接次数
try { try {
List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null); List<Map<String, Object>> poll = customerMapper.list("code,value","org_config",null);
//遍历poll,找出code值为TARGET_ORG_URLTARGET_ORG_USERNAMETARGET_ORG_PASSWORD的value值 //遍历poll,找出code值为TARGET_ORG_URLTARGET_ORG_USERNAMETARGET_ORG_PASSWORD的value值
@ -88,28 +106,23 @@ public class SalesforceTargetConnect {
map.put("password", (String) map1.get("value")); map.put("password", (String) map1.get("value"));
} }
} }
// String username = ;
// ConnectorConfig config = new ConnectorConfig();
// config.setUsername(username);
// config.setPassword();
// String url = ;
// config.setAuthEndpoint(url);
// config.setServiceEndpoint(url);
// config.setConnectionTimeout(60 * 60 * 1000);
// config.setReadTimeout(60 * 60 * 1000);
// PartnerConnection connection = new PartnerConnection(config);
// config.setRestEndpoint(url);
// config.setSessionId(connection.getSessionHeader().getSessionId());
return BulkUtil.getBulkConnection(map.get("username"),map.get("password"),map.get("url")); return BulkUtil.getBulkConnection(map.get("username"),map.get("password"),map.get("url"));
} catch (Exception e) { } catch (Exception e) {
String message = "目标ORG连接配置错误"; failCount++;
log.error("目标ORG连接异常休眠一分钟再次发起重试~~", e);
try {
TimeUnit.MINUTES.sleep(1);
}catch (InterruptedException ie) {
log.error("休眠异常", ie);
} if (failCount > 3) {
String message = "目标ORG三次重试连接错误";
String format = String.format("ORG连接异常, \ncause:\n%s", message); String format = String.format("ORG连接异常, \ncause:\n%s", message);
EmailUtil.send("DataDump ERROR", format); EmailUtil.send("DataDump ERROR", format);
log.error("exception message", e); log.error("exception message", e);
return null; return null;
} }
} }
}
}
} }