From e0ce7bc8678e771d13090d9b262eb833aef114b9 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 04 Jul 2025 18:44:31 +0800
Subject: [PATCH] 新增websocket美国、墨西哥客户端 多线程执行同步股票、新闻咨询抓取
---
src/main/java/com/nq/utils/task/stock/StockTask.java | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/nq/utils/task/stock/StockTask.java b/src/main/java/com/nq/utils/task/stock/StockTask.java
index 635286c..6e97651 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -25,6 +25,9 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -67,10 +70,27 @@
return;
}
if (syncINStockDataLock.tryLock()) {
+ ExecutorService executor = Executors.newFixedThreadPool(2);
+ Future<?> usFuture = null;
+ Future<?> mxFuture = null;
try {
syncINStockData.set(true); // 设置处理中标识为true
- loadAllStock(EStockType.IN);
+
+ // 并行执行US和MX的股票数据加载
+ usFuture = executor.submit(() -> loadAllStock(EStockType.US));
+ mxFuture = executor.submit(() -> loadAllStock(EStockType.MX));
+
+ // 等待两个任务都完成
+ usFuture.get();
+ mxFuture.get();
+ } catch (Exception e) {
+ Thread.currentThread().interrupt();
+ log.error("同步股票数据出错", e);
} finally {
+ // 关闭线程池
+ if (executor != null) {
+ executor.shutdown();
+ }
syncINStockDataLock.unlock();
syncINStockData.set(false); // 设置处理中标识为false
}
--
Gitblit v1.9.3