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
            }