| | |
| | | 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; |
| | |
| | | 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); |
| | | //} |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |