fix():解决报错

version-2():解决迭代器报空异常
master
Saisai Liu 2024-06-02 22:49:54 +08:00
parent 23cc7f44be
commit c96848e9bb
1 changed files with 33 additions and 11 deletions

View File

@ -6,7 +6,7 @@ import com.alibaba.fastjson2.JSON;
import com.aliyun.ecs20140526.models.DescribeInstancesResponse; import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody; import com.aliyun.ecs20140526.models.DescribeInstancesResponseBody;
import com.aliyun.tea.TeaException; import com.aliyun.tea.TeaException;
import com.mobai.domain.ApifoxModel; import com.mobai.domain.flux.ApifoxModel;
import com.mobai.domain.MqttServerModel; import com.mobai.domain.MqttServerModel;
import com.mobai.domain.Result; import com.mobai.domain.Result;
import com.mobai.service.FluxGetInfoService; import com.mobai.service.FluxGetInfoService;
@ -51,19 +51,41 @@ public class SelectInstances {
return new com.aliyun.ecs20140526.Client(config); return new com.aliyun.ecs20140526.Client(config);
} }
// @Scheduled(cron = "0 0/10 * * * ? ")
@Scheduled(cron = "0 0/10 * * * ? ") // 通过接口获取数据
public DescribeInstancesResponse getInfo() {
DescribeInstancesResponse describeInstancesResponse = null;
try {
com.aliyun.ecs20140526.Client client = SelectInstances.createClient();
com.aliyun.ecs20140526.models.DescribeInstancesRequest describeInstancesRequest = new com.aliyun.ecs20140526.models.DescribeInstancesRequest()
// .setImageId("m-8vb8qnidv34yj3nbirhc")
.setRegionId("cn-zhangjiakou");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtime);
} catch (Exception e) {
throw new RuntimeException(e);
}
return describeInstancesResponse;
}
//10分钟
// @Scheduled(cron = "0 0/10 * * * ? ")
//10秒
@Scheduled(cron = "0/10 * * * * ? ")
public void saveIps() throws Exception { public void saveIps() throws Exception {
List<String> ips = new ArrayList<>(); List<String> ips = new ArrayList<>();
com.aliyun.ecs20140526.Client client = SelectInstances.createClient(); // com.aliyun.ecs20140526.Client client = SelectInstances.createClient();
com.aliyun.ecs20140526.models.DescribeInstancesRequest describeInstancesRequest = new com.aliyun.ecs20140526.models.DescribeInstancesRequest() // com.aliyun.ecs20140526.models.DescribeInstancesRequest describeInstancesRequest = new com.aliyun.ecs20140526.models.DescribeInstancesRequest()
// .setImageId("m-8vb8qnidv34yj3nbirhc") //// .setImageId("m-8vb8qnidv34yj3nbirhc")
.setRegionId("cn-zhangjiakou"); // .setRegionId("cn-zhangjiakou");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); // com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
DescribeInstancesResponse response = this.getInfo();
try { try {
// 复制代码运行请自行打印 API 的返回值 // 复制代码运行请自行打印 API 的返回值
DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtime); // DescribeInstancesResponse describeInstancesResponse = client.describeInstancesWithOptions(describeInstancesRequest, runtime);
DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstances instances = describeInstancesResponse.getBody().getInstances(); DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstances instances = response.getBody().getInstances();
List<DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance> instance = List<DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance> instance =
instances.getInstance(); instances.getInstance();
for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance inst : instance) { for (DescribeInstancesResponseBody.DescribeInstancesResponseBodyInstancesInstance inst : instance) {
@ -102,7 +124,7 @@ public class SelectInstances {
for (String ip : ips) { for (String ip : ips) {
Result<ApifoxModel> info = fluxGetInfoService.getInfo(ip); Result<ApifoxModel> info = fluxGetInfoService.getInfo(ip);
//连接总数 //连接总数
long connectSize = info.getData().getMqttInfo().getConnectSize(); long connectSize = Long.parseLong(redisTemplate.opsForValue().get("onlineCar-"+ip));
log.info("{}::{}", ip, connectSize); log.info("{}::{}", ip, connectSize);
//添加到一个容器 //添加到一个容器
nodes.add(new SmallNode(ip, connectSize)); nodes.add(new SmallNode(ip, connectSize));