[server] [ scheduler.script ] - 优化定时脚本任务部分的代码

This commit is contained in:
zeaslity
2023-02-16 14:21:17 +08:00
parent 864d290fe7
commit 2f8f586b0e
13 changed files with 133 additions and 93 deletions

View File

@@ -40,7 +40,7 @@ public class XrayController {
)
);
/*ArrayList<ProxyNode> pathB = new ArrayList<>(
ArrayList<ProxyNode> pathB = new ArrayList<>(
Arrays.asList(
shanghai,
seoul2,
@@ -53,9 +53,16 @@ public class XrayController {
seoul2,
phoenix2
)
);*/
);
allNetworkPathList.add(pathA);
ArrayList<ProxyNode> pathD = new ArrayList<>(
Arrays.asList(
chengduAgent
)
);
// allNetworkPathList.add(pathA);
allNetworkPathList.add(pathD);
// allNetworkPathList.add(pathB);
// allNetworkPathList.add(pathC);
@@ -63,6 +70,8 @@ public class XrayController {
xrayConfigDistribute.uploadXrayConfigToOSS(allNetworkPathList.get(0));
xrayConfigDistribute.buildXrayUpdateResult(allNetworkPathList.get(0));
System.out.println("结束!");
}

View File

@@ -7,8 +7,6 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.File;
@Data
@AllArgsConstructor
@NoArgsConstructor
@@ -26,6 +24,9 @@ public class ProxyNode {
*/
int num;
String agentName;
String agentTopicName;
String location;
@@ -41,6 +42,6 @@ public class ProxyNode {
@Override
public String toString() {
return "ProxyNode: [ " + agentTopicName + " ]";
return "ProxyNode: [ " + agentName + " ]";
}
}

View File

@@ -14,6 +14,8 @@ public class ProxyNodeSet {
public static ProxyNode phoenix2;
public static ProxyNode london2;
public static ProxyNode chengduAgent;
static {
@@ -24,7 +26,7 @@ public class ProxyNodeSet {
.publicIPv4("43.136.177.228")
.proxyNodeType(ProxyNodeType.INTERFACE)
.name("cd-agent")
.agentTopicName("Chengdu-amd-01")
.agentName("Chengdu-amd-01")
.build();
@@ -35,7 +37,7 @@ public class ProxyNodeSet {
.publicIPv4("42.192.52.227")
.proxyNodeType(ProxyNodeType.RELAY)
.name("tc-sh")
.agentTopicName("Shanghai-amd64-01")
.agentName("Shanghai-amd64-01")
.build();
hongkong = ProxyNode
@@ -45,7 +47,7 @@ public class ProxyNodeSet {
.publicIPv4("43.154.83.213")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("tc-hk")
.agentTopicName("Hongkong-amd64-01")
.agentName("Hongkong-amd64-01")
.build();
@@ -56,7 +58,7 @@ public class ProxyNodeSet {
.publicIPv4("140.238.30.110")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("seoul-2")
.agentTopicName("Seoul-amd64-02")
.agentName("Seoul-amd64-02")
.build();
@@ -67,7 +69,7 @@ public class ProxyNodeSet {
.publicIPv4("140.238.52.228")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("tokyo-2")
.agentTopicName("Tokyo-amd64-02")
.agentName("Tokyo-amd64-02")
.build();
phoenix2 = ProxyNode
@@ -77,7 +79,7 @@ public class ProxyNodeSet {
.publicIPv4("129.146.171.163")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("phoenix-2")
.agentTopicName("Phoenix-amd64-02")
.agentName("Phoenix-amd64-02")
.build();
london2 = ProxyNode
@@ -87,7 +89,18 @@ public class ProxyNodeSet {
.publicIPv4("141.147.106.62")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("london-2")
.agentTopicName("London-amd64-02")
.agentName("London-amd64-02")
.build();
chengduAgent = ProxyNode
.builder()
.location("Chengdu")
.num(99)
.publicIPv4("183.220.112.113")
.proxyNodeType(ProxyNodeType.EXTERNAL)
.name("chengdu-agent")
.agentName("Chengdu-amd64-77")
.agentTopicName("Chengdu-amd64-77-remote")
.build();
ProxyNodeMap.put(chengdu.getNum(), chengdu);
@@ -97,7 +110,7 @@ public class ProxyNodeSet {
ProxyNodeMap.put(tokyo2.getNum(), tokyo2);
ProxyNodeMap.put(phoenix2.getNum(), phoenix2);
ProxyNodeMap.put(london2.getNum(), london2);
ProxyNodeMap.put(chengduAgent.getNum(), chengduAgent);
}

View File

@@ -1,5 +1,6 @@
package io.wdd.func.xray.service;
import io.wdd.common.utils.TimeUtils;
import io.wdd.func.oss.config.OctopusObjectSummary;
import io.wdd.func.oss.config.OssConfig;
import io.wdd.func.oss.service.OSSCoreService;
@@ -41,10 +42,9 @@ public class XrayConfigDistribute {
static {
ArrayList<String> first = new ArrayList<>(
List.of(
"cp",
"mv",
"/usr/local/etc/xray/config.json",
"/usr/local/etc/xray/config-bak-$(date +%Y-%m-%d-%H-%M-%S)"
"/usr/local/etc/xray/config-bak-TIME"
)
);
@@ -126,6 +126,7 @@ public class XrayConfigDistribute {
public void buildXrayUpdateResult(ArrayList<ProxyNode> networkPathList) {
String formatTimeString = TimeUtils.currentFormatTimeString();
List<String> resultKeyList = networkPathList
.stream()
@@ -136,13 +137,25 @@ public class XrayConfigDistribute {
.getObjectSummary()
.getAccess();
String realUrl = access
.getOriginUrl()
.getPath();
String realUrl = String.valueOf(access
.getOriginUrl());
if (StringUtils.isNotEmpty(access.getCloudflareUrl())) {
// 优先使用 被cloudflare包装过的的下载网址
realUrl = access.getCloudflareUrl();
}
// 修改命令中的时间
String s = updateXrayCommandList
.get(0)
.get(2);
updateXrayCommandList
.get(0)
.set(
2,
s.replace("TIME",
formatTimeString)
);
// 修改命令中的下载url
updateXrayCommandList
.get(1)
@@ -165,7 +178,10 @@ public class XrayConfigDistribute {
)
.collect(Collectors.toList());
log.debug("发送所有的配置到各个Agent成功 结果查看为 => {}", resultKeyList);
log.info(
"发送所有的配置到各个Agent成功 结果查看为 => {}",
resultKeyList
);
}

View File

@@ -23,7 +23,6 @@ import javax.annotation.Resource;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
@@ -81,18 +80,10 @@ public class XrayCoreServiceImpl implements XrayCoreService {
private void generateXrayJsonSinglePath(ArrayList<ProxyNode> networkPathList) {
int pathLength = networkPathList.size();
if (pathLength == 1) {
log.error("网络路径节点仅为一个");
return;
}
// 忽略掉 null的字段
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
ArrayList<XrayConfig> tmpXrayConfigList = new ArrayList<>();
// 采用 VMESS + websocket的形式形成 链状代理
// 由于 Vlss+XTLS的形式形成 链状结构
String tag = generatePathTag(networkPathList);
@@ -119,7 +110,10 @@ public class XrayCoreServiceImpl implements XrayCoreService {
ProxyNode proxyNode = networkPathList.get(pos);
// 最后一个节点需要进行 FreeOutbound的构造
boolean isOutBoundFree = pos == pathLength - 1;
// 构造 xrayConfig
XrayConfig xrayConfig = doBuildXrayConfig(
isOutBoundFree,
tag,
@@ -129,9 +123,6 @@ public class XrayCoreServiceImpl implements XrayCoreService {
pos
);
// 添加到临时缓存中
tmpXrayConfigList.add(xrayConfig);
// 持久化
try {
String resultContent = objectMapper
@@ -169,7 +160,7 @@ public class XrayCoreServiceImpl implements XrayCoreService {
private String buildXrayConfigFileName(ProxyNode proxyNode, String timeString) {
return proxyNode.getNum() + "-" + proxyNode.getAgentTopicName() + "-" + timeString + ".json";
return proxyNode.getNum() + "-" + proxyNode.getAgentName() + "-" + timeString + ".json";
}