package com.yeshi.buwan.job.domain;
|
|
import com.aliyun.alidns20150109.models.DescribeSubDomainRecordsResponseBody;
|
import com.tencentcloudapi.clb.v20180317.models.LoadBalancer;
|
import com.xxl.job.core.biz.model.ReturnT;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
import com.yeshi.buwan.domain.live.TVLiveChannel;
|
import com.yeshi.buwan.domain.live.TVLiveChannelResourceMap;
|
import com.yeshi.buwan.domain.live.TVLiveProgramResource;
|
import com.yeshi.buwan.domain.live.TVLiveResource;
|
import com.yeshi.buwan.live.migu.MiGuLiveListInfo;
|
import com.yeshi.buwan.live.migu.MiguLiveApiUtil;
|
import com.yeshi.buwan.service.inter.live.MiGuLiveService;
|
import com.yeshi.buwan.service.inter.live.TVLiveChannelResourceService;
|
import com.yeshi.buwan.service.inter.live.TVLiveChannelService;
|
import com.yeshi.buwan.service.inter.live.TVLiveProgramResourceService;
|
import com.yeshi.buwan.service.inter.system.SystemConfigService;
|
import com.yeshi.buwan.util.StringUtil;
|
import com.yeshi.buwan.util.factory.live.TVLiveChannelFactory;
|
import com.yeshi.buwan.util.tvlive.DianShiMaoUtil;
|
import com.yeshi.buwan.util.tvlive.TVSOUUtil;
|
import net.sf.json.JSONArray;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
//10409568
|
@Component
|
public class DDOSJob {
|
|
//切换被腾讯云封堵的IP
|
@XxlJob("ddos-buwan-server-change")
|
public ReturnT<String> buwanServerChange(String params) throws Exception {
|
LoadBalancer[] balances = TencentCloudCLBUtil.getCLBList("布丸-备用");
|
if (balances == null || balances.length == 0) {
|
throw new Exception("腾讯云负载均衡未查询到");
|
}
|
|
List<String> blockIPS = new ArrayList<>();
|
List<String> normalIPS = new ArrayList<>();
|
for (LoadBalancer b : balances) {
|
if (b.getIsBlock()) {
|
blockIPS.add(b.getLoadBalancerVips()[0].trim());
|
} else {
|
normalIPS.add(b.getLoadBalancerVips()[0].trim());
|
}
|
}
|
|
//无封堵
|
if (blockIPS.size() == 0) {
|
return ReturnT.SUCCESS;
|
}
|
|
//获取阿里云解析的域名
|
DescribeSubDomainRecordsResponseBody.DescribeSubDomainRecordsResponseBodyDomainRecordsRecord record = AliyunDomainParseUtil.getIP("api.ysdq.yeshitv.com");
|
|
String ip = record.getValue().trim();
|
if (!blockIPS.contains(ip)) {
|
//如果没有解析封堵的IP就返回
|
return ReturnT.SUCCESS;
|
}
|
|
//更换正常的IP
|
if (normalIPS.size() == 0) {
|
throw new Exception("腾讯云负载均衡IP已全部被封堵,请增加IP");
|
}
|
AliyunDomainParseUtil.setIP(record, normalIPS.get(normalIPS.size() - 1));
|
return ReturnT.SUCCESS;
|
}
|
|
// public static void main(String[] args){
|
// try {
|
// new DDOSJob().buwanServerChange("");
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// }
|
|
|
}
|