1、定位并解决收益未自动生成问题。

2、优化服务器列表筛选条件查询速度。
This commit is contained in:
gaoyutao
2025-12-11 19:18:59 +08:00
parent 2eaf62ea82
commit f3bdfbc6bf
5 changed files with 93 additions and 58 deletions
@@ -68,21 +68,45 @@ public class RmMtrPolicyConfigServiceImpl implements IRmMtrPolicyConfigService
* 辅助方法,给ip集合赋值
* @param mtrPolicyConfig
*/
public void setServerip(RmMtrPolicyConfig mtrPolicyConfig){
public void setServerip(RmMtrPolicyConfig mtrPolicyConfig) {
StringJoiner resultJoiner = new StringJoiner(";");
String serverGroupStr = mtrPolicyConfig.getServerGroup().replace("\n",",");
RmNetworkInterfaceRemote query = new RmNetworkInterfaceRemote();
query.setClientIds(serverGroupStr);
R<List<RmNetworkInterfaceRemote>> networkList = remoteRocketMqService.getNetworkInterfaceList(query, SecurityConstants.INNER);
if(networkList != null && networkList.getData() != null){
List<RmNetworkInterfaceRemote> rmNetworkInterfaceRemoteList = networkList.getData();
if(!rmNetworkInterfaceRemoteList.isEmpty()){
for (RmNetworkInterfaceRemote rmNetworkInterfaceRemote : rmNetworkInterfaceRemoteList) {
String publicIp = rmNetworkInterfaceRemote.getPublicIp();
resultJoiner.add(publicIp);
String serverGroupStr = mtrPolicyConfig.getServerGroup().replace("\n", ",");
String[] serverIds = serverGroupStr.split(",");
// 分批次处理,每批200个
int batchSize = 200;
for (int i = 0; i < serverIds.length; i += batchSize) {
int end = Math.min(i + batchSize, serverIds.length);
// 构建当前批次的id字符串
StringBuilder batchIds = new StringBuilder();
for (int j = i; j < end; j++) {
if (batchIds.length() > 0) {
batchIds.append(",");
}
mtrPolicyConfig.setServeripGroup(resultJoiner.toString());
batchIds.append(serverIds[j].trim());
}
// 查询当前批次
RmNetworkInterfaceRemote query = new RmNetworkInterfaceRemote();
query.setClientIds(batchIds.toString());
R<List<RmNetworkInterfaceRemote>> networkList = remoteRocketMqService.getNetworkInterfaceList(query, SecurityConstants.INNER);
// 处理结果
if (networkList != null && networkList.getData() != null) {
for (RmNetworkInterfaceRemote rmNetworkInterfaceRemote : networkList.getData()) {
String publicIp = rmNetworkInterfaceRemote.getPublicIp();
if (publicIp != null && !publicIp.trim().isEmpty()) {
resultJoiner.add(publicIp);
}
}
}
}
// 设置最终结果
String result = resultJoiner.toString();
if (!result.isEmpty()) {
mtrPolicyConfig.setServeripGroup(result);
}
}
/**