新版仿ok交易所-后端
zyy
2025-09-10 bd8391d8f7b74077a2404014a052152780b116e4
trading-order-admin/src/main/java/com/yami/trading/admin/task/InitHandle.java
@@ -25,6 +25,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Collections;
@@ -120,7 +121,10 @@
        for (Item item : items) {
            Realtime realtime = dataDBService.get(item.getSymbol());
            if (realtime != null) {
                DataCache.putRealtime(item.getSymbol(), realtime);
                //停牌时不更新
                //if (!itemService.isSuspended(item.getSymbol())) {
                    DataCache.putRealtime(item.getSymbol(), realtime);
                //}
            }
        }
@@ -203,6 +207,73 @@
        exchangeApplyOrderHandleJob.start();
    }
    @Async
    public void init() {
        log.info("开始Data初始化........");
        itemService.reloadListAndCache();
        List<Item> items = itemService.list();
        for (Item item : items) {
            AdjustmentValueCache.getCurrentValue().put(item.getSymbol(), item.getAdjustmentValue());
        }
        for (Item item : items) {
            Realtime realtime = dataDBService.get(item.getSymbol());
            if (realtime != null) {
                //停牌时不更新
                //if (!itemService.isSuspended(item.getSymbol())) {
                    DataCache.putRealtime(item.getSymbol(), realtime);
                //}
            }
        }
        for (Item item : items) {
            List<Realtime> list = this.dataDBService.findRealtimeOneDay(item.getSymbol());
            DataCache.getRealtimeHistory().put(item.getSymbol(), list);
        }
        klineLoadCache.loadCache();
        String symbols = items.stream().map(Item::getSymbol).collect(Collectors.joining(","));
        // 数据有问题初始化一下
        klineInitService.klineInit(symbols);
        // 高低修正
        highLowHandleJob.start();
        cryptosGetDataJob.start();
        fakeSymbolGetDataJob.start();
        // 实时数据批量保存线程
        saveRealtimeServer.start();
        // realtime推送JOB
        realtimePushJob.start();
        /**
         * 最化5档和最新成交数据 火币数据线程
         */
        dataServer.start();
        List<Item> item_list = itemService.list().stream().filter(i -> i.getType().equalsIgnoreCase(Item.cryptos)).collect(Collectors.toList());
        for (int i = 0; i < item_list.size(); i++) {
            Item item = item_list.get(i);
            HandleObject depth = new HandleObject();
            depth.setType(HandleObject.type_depth);
            depth.setItem(item);
            DataQueue.add(depth);
            HandleObject trade = new HandleObject();
            trade.setType(HandleObject.type_trade);
            trade.setItem(item);
            DataQueue.add(trade);
        }
        realtimeWebsocketServer.start();
        realtimePushJob.start();
        depthPushJob.start();
        tradePushJob.start();
        dataFrequencyServer.start();
        cleanDataJob.taskJob();
        log.info("完成Data初始化。");
    }
    public void bulidInit(Item item, String line) {
        List<Kline> list = this.klineService.find(item.getSymbol(), line, Integer.MAX_VALUE);