| | |
| | | import com.huobi.client.model.Candlestick; |
| | | import com.huobi.client.model.enums.CandlestickInterval; |
| | | import com.xcong.excoin.modules.symbols.service.SymbolsService; |
| | | import com.xcong.excoin.rabbit.pricequeue.WebsocketPriceService; |
| | | import com.xcong.excoin.utils.CoinTypeConvert; |
| | | import com.xcong.excoin.utils.RedisUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | |
| | | @Resource |
| | | private SymbolsService symbolsService; |
| | | |
| | | @Resource |
| | | private WebsocketPriceService websocketPriceService; |
| | | |
| | | @PostConstruct |
| | | public void initNewestPrice() { |
| | | log.info("#=======价格更新开启=======#"); |
| | | SubscriptionOptions subscriptionOptions = new SubscriptionOptions(); |
| | | subscriptionOptions.setConnectionDelayOnFailure(5); |
| | | subscriptionOptions.setUri("wss://api.hadax.com/ws"); |
| | | SubscriptionClient subscriptionClient = SubscriptionClient.create("", "", subscriptionOptions); |
| | | subscriptionClient.subscribeTradeEvent("btcusdt,ethusdt,xrpusdt,ltcusdt,bchusdt,eosusdt,etcusdt", tradeEvent -> { |
| | | String symbol = tradeEvent.getSymbol(); |
| | | // 根据symbol判断做什么操作 |
| | | symbol = CoinTypeConvert.convert(symbol); |
| | | if (null != symbol) { |
| | | String price = tradeEvent.getTradeList().get(0).getPrice().toPlainString(); |
| | | // TODO 测试环境关闭这个插入redis |
| | | redisUtils.set(CoinTypeConvert.convertToKey(symbol), price); |
| | | // 比较 |
| | | // websocketPriceService.comparePriceAsc(symbol, price); |
| | | // websocketPriceService.comparePriceDesc(symbol, price); |
| | | //System.out.println("比较完毕:"+symbol+"-"+price); |
| | | try{ |
| | | log.info("#=======价格更新开启=======#"); |
| | | SubscriptionOptions subscriptionOptions = new SubscriptionOptions(); |
| | | subscriptionOptions.setConnectionDelayOnFailure(5); |
| | | subscriptionOptions.setUri("wss://api.hadax.com/ws"); |
| | | SubscriptionClient subscriptionClient = SubscriptionClient.create("", "", subscriptionOptions); |
| | | subscriptionClient.subscribeTradeEvent("btcusdt,ethusdt,xrpusdt,ltcusdt,bchusdt,eosusdt,etcusdt", tradeEvent -> { |
| | | String symbol = tradeEvent.getSymbol(); |
| | | // 根据symbol判断做什么操作 |
| | | symbol = CoinTypeConvert.convert(symbol); |
| | | if (null != symbol) { |
| | | String price = tradeEvent.getTradeList().get(0).getPrice().toPlainString(); |
| | | // TODO 测试环境关闭这个插入redis |
| | | redisUtils.set(CoinTypeConvert.convertToKey(symbol), price); |
| | | // 比较 |
| | | //websocketPriceService.comparePriceAsc(symbol, price); |
| | | //websocketPriceService.comparePriceDesc(symbol, price); |
| | | //System.out.println("比较完毕:"+symbol+"-"+price); |
| | | |
| | | } |
| | | } |
| | | |
| | | }); |
| | | }); |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | |
| | | subscriptionClient.subscribeCandlestickEvent("btcusdt,ethusdt,eosusdt,etcusdt,ltcusdt,bchusdt,xrpusdt", CandlestickInterval.DAY1, (candlestickEvent) -> { |
| | | Candlestick data = candlestickEvent.getData(); |
| | | redisUtils.set(CoinTypeConvert.convert(candlestickEvent.getSymbol()), data); |
| | | }); |
| | | |
| | | // subscriptionClient.subscribeCandlestickEvent("btcusdt,ethusdt,eosusdt,etcusdt,ltcusdt,bchusdt,xrpusdt", CandlestickInterval.DAY1, (candlestickEvent) -> { |
| | | // Candlestick data = candlestickEvent.getData(); |
| | | // redisUtils.set(CoinTypeConvert.convert(candlestickEvent.getSymbol()), data); |
| | | // }); |
| | | } |
| | | } |