104 lines
2.6 KiB
Go
104 lines
2.6 KiB
Go
package main
|
|
|
|
import (
|
|
// "fmt"
|
|
"github.com/phyer/core"
|
|
md "github.com/phyer/siaga/modules"
|
|
logrus "github.com/sirupsen/logrus"
|
|
"os"
|
|
"sync"
|
|
// "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
func main() {
|
|
cr := core.Core{}
|
|
cr.Init()
|
|
logrus.SetLevel(logrus.InfoLevel)
|
|
cr.TickerInforocessChan = make(chan *core.TickerInfo)
|
|
cr.CandlesProcessChan = make(chan *core.Candle)
|
|
cr.MaXProcessChan = make(chan *core.MaX)
|
|
cr.RsiProcessChan = make(chan *core.Rsi)
|
|
cr.StockRsiProcessChan = make(chan *core.StockRsi)
|
|
cr.MakeMaXsChan = make(chan *core.Candle)
|
|
cr.WriteLogChan = make(chan *core.WriteLog)
|
|
cr.Mu = &sync.Mutex{}
|
|
cr.PlateMap = make(map[string]*core.Plate)
|
|
cli, _ := cr.GetRedisLocalCli()
|
|
cr.RedisRemoteCli = cli
|
|
|
|
rdsLs, _ := md.GetRemoteRedisConfigList()
|
|
// 目前只有phyer里部署的tunas会发布tickerInfo信息
|
|
// fmt.Println("len of rdsLs: ", len(rdsLs))
|
|
|
|
// 定义订阅配置
|
|
subscriptions := []struct {
|
|
envVar string
|
|
channel string
|
|
logPrefix string
|
|
}{
|
|
{"SIAGA_ACCEPTTICKER", core.TICKERINFO_PUBLISH, "TickerInfo"},
|
|
{"SIAGA_ACCEPTCANDLE", core.ALLCANDLES_PUBLISH, "Candles"},
|
|
{"SIAGA_ACCEPTMAX", core.ALLMAXES_PUBLISH, "Max"},
|
|
{"SIAGA_ACCEPTSERIES", core.ALLSERIESINFO_PUBLISH, "Series"},
|
|
}
|
|
|
|
// 启动所有订阅
|
|
for _, sub := range subscriptions {
|
|
go func(s struct {
|
|
envVar string
|
|
channel string
|
|
logPrefix string
|
|
}) {
|
|
if os.Getenv(s.envVar) != "true" {
|
|
return
|
|
}
|
|
logrus.Infof("start subscribe %s: %s", s.logPrefix, s.channel)
|
|
md.LoopSubscribe(&cr, s.channel, rdsLs[0])
|
|
}(sub)
|
|
}
|
|
|
|
go func() {
|
|
md.TickerInfoProcess(&cr)
|
|
}()
|
|
go func() {
|
|
md.CandlesProcess(&cr)
|
|
}()
|
|
go func() {
|
|
md.LoopMakeMaX(&cr)
|
|
}()
|
|
go func() {
|
|
md.MaXsProcess(&cr)
|
|
}()
|
|
go func() {
|
|
md.RsisProcess(&cr)
|
|
}()
|
|
go func() {
|
|
md.StockRsisProcess(&cr)
|
|
}()
|
|
|
|
// 这些暂时不运行, 以后要不要运行再说
|
|
// go func() {
|
|
// core.CoasterProcess(&cr)
|
|
// }()
|
|
// go func() {
|
|
// core.SeriesProcess(&cr)
|
|
// }()
|
|
// go func() {
|
|
// core.SegmentItemProcess(&cr)
|
|
// }()
|
|
// go func() {
|
|
// core.ShearForceProcess(&cr)
|
|
// }()
|
|
go func() {
|
|
core.WriteLogProcess(&cr)
|
|
}()
|
|
|
|
// ip := "0.0.0.0:6061"
|
|
// if err := http.ListenAndServe(ip, nil); err != nil {
|
|
// }
|
|
// allMaxs: {1634413398759-0 map[ma7|candle5m|LUNA-USDT|key:{"ts":1634412300000,"value":36.906796182686605}]}
|
|
// allCandles: {1634413398859-0 map[candle2H|XRP-USDT|key:{"channel":"candle2H","data":"eyJjIjoxLjExNzk1LCJmcm9tIjoicmVzdCIsImgiOjEuMTIyNzksImwiOjEuMTA4ODUsIm8iOjEuMTE3MzUsInRzIjoxNjM0MjkyMDAwMDAwLCJ2b2wiOjUwMDc5OTEuNDM5MDg1LCJ2b2xDY3kiOjU1OTE2MjUuNzI4NDc2fQ==","instId":"XRP-USDT"}]}
|
|
logrus.Info("siaga started")
|
|
select {}
|
|
}
|