From 4b8e10e605d28fc1b4ad3d33a6cf2bfbbea15bd5 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Fri, 19 Jul 2024 18:34:01 +0800
Subject: [PATCH] 1
---
websocketClient/src/main/java/org/example/WsBean/MexcWsBean.java | 74 +++++++++++++++++++++++++++++++++++--
1 files changed, 70 insertions(+), 4 deletions(-)
diff --git a/websocketClient/src/main/java/org/example/WsBean/MexcWsBean.java b/websocketClient/src/main/java/org/example/WsBean/MexcWsBean.java
index 0315b55..7d45771 100644
--- a/websocketClient/src/main/java/org/example/WsBean/MexcWsBean.java
+++ b/websocketClient/src/main/java/org/example/WsBean/MexcWsBean.java
@@ -2,8 +2,18 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
import org.example.pojo.Currency;
import org.example.server.impl.CurrencySerivceImpl;
+import org.example.wsClient.GateClient;
+import org.example.wsClient.KucoinClient;
import org.example.wsClient.MexcClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -11,7 +21,9 @@
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* @ClassDescription: 客户端请求类
@@ -28,11 +40,31 @@
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+// @Bean
+// public void mexcWebsocketRunClientMap() {
+// List<Currency> mexc = currencyService.list(new LambdaQueryWrapper<Currency>().eq(Currency::getSource, "mexc"));
+// if (!CollectionUtils.isEmpty(mexc)) {
+// int batchSize = 30; // 每个线程处理的数据量
+// int totalSize = mexc.size();
+// int threadCount = (int) Math.ceil((double) totalSize / batchSize); // 计算需要的线程数
+//
+// for (int i = 0; i < threadCount; i++) {
+// int fromIndex = i * batchSize;
+// int toIndex = Math.min(fromIndex + batchSize, totalSize);
+// List<Currency> sublist = mexc.subList(fromIndex, toIndex);
+//
+// // 使用自定义线程池提交任务
+// threadPoolTaskExecutor.execute(new MexcClient(sublist)::start);
+// }
+//
+// }
+// }
+
@Bean
- public void mexcWebsocketRunClientMap() {
- List<Currency> mexc = currencyService.list(new LambdaQueryWrapper<Currency>().eq(Currency::getSource, "mexc"));
+ public void gateWebsocketRunClientMap() {
+ List<Currency> mexc = currencyService.list(new LambdaQueryWrapper<Currency>().eq(Currency::getSource, "gate"));
if (!CollectionUtils.isEmpty(mexc)) {
- int batchSize = 30; // 每个线程处理的数据量
+ int batchSize = 100; // 每个线程处理的数据量
int totalSize = mexc.size();
int threadCount = (int) Math.ceil((double) totalSize / batchSize); // 计算需要的线程数
@@ -42,10 +74,44 @@
List<Currency> sublist = mexc.subList(fromIndex, toIndex);
// 使用自定义线程池提交任务
- threadPoolTaskExecutor.execute(new MexcClient(sublist)::start);
+ threadPoolTaskExecutor.execute(new GateClient(sublist)::start);
}
}
}
+
+ @Bean
+ public void kucoinWebsocketRunClientMap() throws Exception {
+ List<Currency> mexc = currencyService.list(new LambdaQueryWrapper<Currency>().eq(Currency::getSource, "gate"));
+ if (!CollectionUtils.isEmpty(mexc)) {
+ String token = doPost();
+ int batchSize = 100; // 每个线程处理的数据量
+ int totalSize = mexc.size();
+ int threadCount = (int) Math.ceil((double) totalSize / batchSize); // 计算需要的线程数
+
+ for (int i = 0; i < threadCount; i++) {
+ int fromIndex = i * batchSize;
+ int toIndex = Math.min(fromIndex + batchSize, totalSize);
+ List<Currency> sublist = mexc.subList(fromIndex, toIndex);
+
+ // 使用自定义线程池提交任务
+ threadPoolTaskExecutor.execute(new KucoinClient(sublist,token)::start);
+ }
+
+ }
+ }
+
+ public static String doPost() throws Exception {
+ String url = "https://api.kucoin.com/api/v1/bullet-public";
+ HttpPost httpPost = new HttpPost(url);
+ DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
+ List<NameValuePair> nvps = new ArrayList<NameValuePair>();
+ httpPost.setEntity(new UrlEncodedFormEntity(nvps));
+ HttpResponse response = defaultHttpClient.execute(httpPost);
+ HttpEntity respEntity = response.getEntity();
+ String text = EntityUtils.toString(respEntity, "UTF-8");
+ defaultHttpClient.getConnectionManager().shutdown();
+ return text;
+ }
}
--
Gitblit v1.9.3