mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-09 03:06:37 +08:00
去除自动同步配置
This commit is contained in:
@@ -32,6 +32,11 @@ public class CheckGostConfigAsync {
|
|||||||
@Lazy
|
@Lazy
|
||||||
private SpeedLimitService speedLimitService;
|
private SpeedLimitService speedLimitService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private TunnelService tunnelService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清理孤立的Gost配置项
|
* 清理孤立的Gost配置项
|
||||||
@@ -44,6 +49,8 @@ public class CheckGostConfigAsync {
|
|||||||
cleanOrphanedServices(gostConfig, node);
|
cleanOrphanedServices(gostConfig, node);
|
||||||
cleanOrphanedChains(gostConfig, node);
|
cleanOrphanedChains(gostConfig, node);
|
||||||
cleanOrphanedLimiters(gostConfig, node);
|
cleanOrphanedLimiters(gostConfig, node);
|
||||||
|
syncLimiters(gostConfig, node);
|
||||||
|
// syncServices(gostConfig, node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,36 +64,37 @@ public class CheckGostConfigAsync {
|
|||||||
|
|
||||||
for (ConfigItem service : gostConfig.getServices()) {
|
for (ConfigItem service : gostConfig.getServices()) {
|
||||||
safeExecute(() -> {
|
safeExecute(() -> {
|
||||||
if (Objects.equals(service.getName(), "web_api")) {
|
|
||||||
return; // 排除API服务
|
if (!Objects.equals(service.getName(), "web_api")){
|
||||||
|
String[] serviceIds = parseServiceName(service.getName());
|
||||||
|
if (serviceIds.length == 4) {
|
||||||
|
String forwardId = serviceIds[0];
|
||||||
|
String userId = serviceIds[1];
|
||||||
|
String userTunnelId = serviceIds[2];
|
||||||
|
String type = serviceIds[3];
|
||||||
|
|
||||||
|
if (Objects.equals(type, "tcp")) { // 只处理TCP,避免重复处理
|
||||||
|
Forward forward = forwardService.getById(forwardId);
|
||||||
|
if (forward == null) {
|
||||||
|
log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
|
||||||
|
GostDto gostDto = GostUtil.DeleteService(node.getId(), forwardId + "_" + userId + "_" + userTunnelId);
|
||||||
|
System.out.println(gostDto);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (Objects.equals(type, "tls")) {
|
||||||
|
Forward forward = forwardService.getById(forwardId);
|
||||||
|
if (forward == null) {
|
||||||
|
log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
|
||||||
|
GostUtil.DeleteRemoteService(node.getId(), forwardId+"_"+userId+"_"+userTunnelId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] serviceIds = parseServiceName(service.getName());
|
|
||||||
if (serviceIds.length == 4) {
|
|
||||||
String forwardId = serviceIds[0];
|
|
||||||
String userId = serviceIds[1];
|
|
||||||
String userTunnelId = serviceIds[2];
|
|
||||||
String type = serviceIds[3];
|
|
||||||
|
|
||||||
if (Objects.equals(type, "tcp")) { // 只处理TCP,避免重复处理
|
|
||||||
Forward forward = forwardService.getById(forwardId);
|
|
||||||
if (forward == null) {
|
|
||||||
log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
|
|
||||||
GostDto gostDto = GostUtil.DeleteService(node.getId(), forwardId + "_" + userId + "_" + userTunnelId);
|
|
||||||
System.out.println(gostDto);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (Objects.equals(type, "tls")) {
|
|
||||||
Forward forward = forwardService.getById(forwardId);
|
|
||||||
if (forward == null) {
|
|
||||||
log.info("删除孤立的服务: {} (节点: {})", service.getName(), node.getId());
|
|
||||||
GostUtil.DeleteRemoteService(node.getId(), forwardId+"_"+userId+"_"+userTunnelId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}, "清理服务 " + service.getName());
|
}, "清理服务 " + service.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +150,52 @@ public class CheckGostConfigAsync {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步限流器
|
||||||
|
*/
|
||||||
|
private void syncLimiters(GostConfigDto gostConfig, Node node) {
|
||||||
|
List<Tunnel> tunnelList = tunnelService.list(new QueryWrapper<Tunnel>().eq("in_node_id", node.getId()));
|
||||||
|
if (tunnelList == null || tunnelList.isEmpty()) return;
|
||||||
|
safeExecute(() -> {
|
||||||
|
StringBuilder tunnelIds = new StringBuilder();
|
||||||
|
for (Tunnel tunnel : tunnelList) {
|
||||||
|
tunnelIds.append(tunnel.getId()).append(",");
|
||||||
|
}
|
||||||
|
String ids = tunnelIds.deleteCharAt(tunnelIds.length() - 1).toString();
|
||||||
|
List<SpeedLimit> speedLimits = speedLimitService.list(new QueryWrapper<SpeedLimit>().in("tunnel_id", ids));
|
||||||
|
if (speedLimits != null && !speedLimits.isEmpty()) {
|
||||||
|
List<ConfigItem> limiters = gostConfig.getLimiters();
|
||||||
|
List<Long> limiters_ids = new ArrayList<>();
|
||||||
|
List<Long> speedLimits_ids = new ArrayList<>();
|
||||||
|
if (limiters != null){
|
||||||
|
for (ConfigItem limiter : limiters) {
|
||||||
|
limiters_ids.add(Long.valueOf(limiter.getName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (SpeedLimit speedLimit : speedLimits) {
|
||||||
|
speedLimits_ids.add(speedLimit.getId());
|
||||||
|
}
|
||||||
|
List<Long> diff = new ArrayList<>(speedLimits_ids);
|
||||||
|
diff.removeAll(limiters_ids);
|
||||||
|
System.out.println(diff);
|
||||||
|
if (!diff.isEmpty()) {
|
||||||
|
|
||||||
|
for (Long speed_id : diff) {
|
||||||
|
SpeedLimit speedLimit = speedLimitService.getById(speed_id);
|
||||||
|
if (speedLimit != null) {
|
||||||
|
SpeedLimitUpdateDto speedLimitUpdateDto = new SpeedLimitUpdateDto();
|
||||||
|
speedLimitUpdateDto.setId(speed_id);
|
||||||
|
speedLimitUpdateDto.setName(speedLimit.getName());
|
||||||
|
speedLimitUpdateDto.setSpeed(speedLimit.getSpeed());
|
||||||
|
speedLimitUpdateDto.setTunnelId(speedLimit.getTunnelId());
|
||||||
|
speedLimitUpdateDto.setTunnelName(speedLimit.getTunnelName());
|
||||||
|
speedLimitService.updateSpeedLimit(speedLimitUpdateDto);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, "同步限流器 ");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 安全执行操作,捕获异常
|
* 安全执行操作,捕获异常
|
||||||
|
|||||||
Reference in New Issue
Block a user