思维导图
tunnas
  分支主题 1
  分支主题 2
  分支主题 3
  分支主题 4
  main.go
  core.LoopLiveingOrders()
  go func(){}
  go func(){}
  core.LoopAllCoinsList()
  RestTicker()
    从接口获得所有的TickerInfo
    组装好了publish到redis
  定时器每分钟触发
  redis
    tickerInfo|publish
    restQueue
    allCandles|publish
  遍历器
这样的遍历器有好几个
    LoopAllCoinsList()
      类似一个可以参数化循环使用的番茄钟
        触发
          cr.GetScoreList
        channel
          -allScoreChan
        lpush
          组装好的一个core.RestQueue对象
  LoopSaveCandle
    统一受理发起rest请求的请求
    根据需要，决定是否把请求的结果转换成candle对象存入redis , tunnas默认不存
    把candle对象推进channel
      core.AddToGeneralCandleChnl
      candle对象
        type Candle struct {
        core *Core
        InstId string
        Period string
        Data []interface{}
          candle对象interface里的具体定义：https://www.okx.com/docs-v5/zh/#order-book-trading-market-data-get-candlesticks
        From string
        }
  遍历器
  自由主题
  遍历器
    LoopRestQ
      这个函数是被废弃了的
  遍历器
    LoopSubscribe
      ws订阅相关，ws相关逻辑太复杂，先不考虑了
  遍历器
    LoopCheckMyFavorList
      对于我已经持有了的币种，提高关注的等级，基于这样的一个想法，做了这么一个函数, 这个先不考虑了
  tickerInfo|publish
    里面内容类似如下：
    1) "message"
    2) "tickerInfo|publish"
    3) "{\"instId\":\"SOL-USDT\",\"last\":237.86,\"instType\":\"SPOT\",\"volCcy24h\":117756797.79530548,\"ts\":1733064522213}"
    3) "{\"instId\":\"DOGE-USDT\",\"last\":0.42532,\"instType\":\"SPOT\",\"volCcy24h\":353065444.6126741,\"ts\":1733064522606}"
    TickerInfo包含
 type TickerInfo struct {
InstId string `json:"instId"` #币种
Last float64 `json:"last"` #最新报价
InstType string `json:"instType"`
VolCcy24h float64 `json:"volCcy24h"` ## 最近24小时成交量
Ts int64 `json:"ts"` ## 时间戳
}