去掉Coaster UploadTray,以后再说
This commit is contained in:
parent
91388f85e8
commit
534186cf8f
12
candle.go
12
candle.go
@ -21,7 +21,7 @@ import (
|
||||
type Candle struct {
|
||||
Id string `json:"_id"`
|
||||
core *Core
|
||||
InstId string
|
||||
InstID string
|
||||
Period string
|
||||
Data []interface{}
|
||||
From string
|
||||
@ -64,7 +64,7 @@ func (cd *Candle) Filter(cr *Core) bool {
|
||||
myFocusList := cr.Cfg.Config.Get("focusList").MustArray()
|
||||
founded := false
|
||||
for _, v := range myFocusList {
|
||||
if v.(string) == cd.InstId {
|
||||
if v.(string) == cd.InstID {
|
||||
founded = true
|
||||
break
|
||||
}
|
||||
@ -179,7 +179,7 @@ func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura
|
||||
leng := len(rsp.Data)
|
||||
for _, v := range rsp.Data {
|
||||
candle := Candle{
|
||||
InstId: instId,
|
||||
InstID: instId,
|
||||
Period: period,
|
||||
Data: v,
|
||||
From: "rest",
|
||||
@ -203,7 +203,7 @@ func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura
|
||||
}
|
||||
|
||||
func (candle *Candle) PushToWriteLogChan(cr *Core) error {
|
||||
did := candle.InstId + candle.Period + candle.Data[0].(string)
|
||||
did := candle.InstID + candle.Period + candle.Data[0].(string)
|
||||
candle.Id = HashString(did)
|
||||
ncd, _ := candle.ToStruct(cr)
|
||||
fmt.Println("ncd: ", ncd)
|
||||
@ -240,7 +240,7 @@ func (cl *Candle) ToStruct(core *Core) (*Candle, error) {
|
||||
ncd := Candle{}
|
||||
ncd.Id = cl.Id
|
||||
ncd.Period = cl.Period
|
||||
ncd.InstId = cl.InstId
|
||||
ncd.InstID = cl.InstID
|
||||
ncd.From = cl.From
|
||||
|
||||
// 将字符串转换为 int64 类型的时间戳
|
||||
@ -446,7 +446,7 @@ func (cl *Candle) SetToKey(core *Core) ([]interface{}, error) {
|
||||
data := cl.Data
|
||||
tsi, err := strconv.ParseInt(data[0].(string), 10, 64)
|
||||
tss := strconv.FormatInt(tsi, 10)
|
||||
keyName := "candle" + cl.Period + "|" + cl.InstId + "|ts:" + tss
|
||||
keyName := "candle" + cl.Period + "|" + cl.InstID + "|ts:" + tss
|
||||
//过期时间:根号(当前candle的周期/1分钟)*10000
|
||||
|
||||
dt, err := json.Marshal(cl.Data)
|
||||
|
167
coaster.go
167
coaster.go
@ -89,88 +89,89 @@ func (co *Coaster) SetToKey(cr *Core) (string, error) {
|
||||
return res, err
|
||||
}
|
||||
|
||||
func (coi *CoasterInfo) Process(cr *Core) {
|
||||
curCo, _ := cr.GetCoasterFromPlate(coi.InstID, coi.Period)
|
||||
go func(co Coaster) {
|
||||
//这里执行:创建一个tray对象,用现有的co的数据计算和填充其listMap
|
||||
// TODO 发到一个channel里来执行下面的任务,
|
||||
allow := os.Getenv("SARDINE_MAKESERIES") == "true"
|
||||
if !allow {
|
||||
return
|
||||
}
|
||||
srs, err := co.UpdateTray(cr)
|
||||
if err != nil || srs == nil {
|
||||
logrus.Warn("tray err: ", err)
|
||||
return
|
||||
}
|
||||
_, err = srs.SetToKey(cr)
|
||||
if err != nil {
|
||||
logrus.Warn("srs SetToKey err: ", err)
|
||||
return
|
||||
}
|
||||
//实例化完一个tray之后,拿着这个tray去执行Analytics方法
|
||||
//
|
||||
// srsinfo := SeriesInfo{
|
||||
// InstID: curCo.InstID,
|
||||
// Period: curCo.Period,
|
||||
// }
|
||||
//
|
||||
// cr.SeriesChan <- &srsinfo
|
||||
}(curCo)
|
||||
|
||||
go func(co Coaster) {
|
||||
// 每3次会有一次触发缓存落盘
|
||||
// run := utils.Shaizi(3)
|
||||
// if run {
|
||||
_, err := co.SetToKey(cr)
|
||||
if err != nil {
|
||||
logrus.Warn("coaster process err: ", err)
|
||||
fmt.Println("coaster SetToKey err: ", err)
|
||||
}
|
||||
// }
|
||||
|
||||
}(curCo)
|
||||
}
|
||||
|
||||
// func (coi *CoasterInfo) Process(cr *Core) {
|
||||
// curCo, _ := cr.GetCoasterFromPlate(coi.InstID, coi.Period)
|
||||
// go func(co Coaster) {
|
||||
// //这里执行:创建一个tray对象,用现有的co的数据计算和填充其listMap
|
||||
// // TODO 发到一个channel里来执行下面的任务,
|
||||
// allow := os.Getenv("SARDINE_MAKESERIES") == "true"
|
||||
// if !allow {
|
||||
// return
|
||||
// }
|
||||
// srs, err := co.UpdateTray(cr)
|
||||
// if err != nil || srs == nil {
|
||||
// logrus.Warn("tray err: ", err)
|
||||
// return
|
||||
// }
|
||||
// _, err = srs.SetToKey(cr)
|
||||
// if err != nil {
|
||||
// logrus.Warn("srs SetToKey err: ", err)
|
||||
// return
|
||||
// }
|
||||
// //实例化完一个tray之后,拿着这个tray去执行Analytics方法
|
||||
// //
|
||||
// // srsinfo := SeriesInfo{
|
||||
// // InstID: curCo.InstID,
|
||||
// // Period: curCo.Period,
|
||||
// // }
|
||||
// //
|
||||
// // cr.SeriesChan <- &srsinfo
|
||||
// }(curCo)
|
||||
//
|
||||
// go func(co Coaster) {
|
||||
// // 每3次会有一次触发缓存落盘
|
||||
// // run := utils.Shaizi(3)
|
||||
// // if run {
|
||||
// _, err := co.SetToKey(cr)
|
||||
// if err != nil {
|
||||
// logrus.Warn("coaster process err: ", err)
|
||||
// fmt.Println("coaster SetToKey err: ", err)
|
||||
// }
|
||||
// // }
|
||||
//
|
||||
// }(curCo)
|
||||
// }
|
||||
//
|
||||
// TODO 类似于InsertIntoPlate函数,照猫画虎就行了
|
||||
func (co *Coaster) UpdateTray(cr *Core) (*Series, error) {
|
||||
cr.Mu1.Lock()
|
||||
defer cr.Mu1.Unlock()
|
||||
//尝试从内存读取tray对象
|
||||
tr, trayFounded := cr.TrayMap[co.InstID]
|
||||
if !trayFounded {
|
||||
tr1, err := co.LoadTray(cr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cr.TrayMap[co.InstID] = tr1
|
||||
tr = tr1
|
||||
}
|
||||
srs, seriesFounded := tr.SeriesMap["period"+co.Period]
|
||||
err := errors.New("")
|
||||
if !seriesFounded {
|
||||
srs1, err := tr.NewSeries(cr, co.Period)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tr.SeriesMap["period"+co.Period] = srs1
|
||||
} else {
|
||||
err = srs.Refresh(cr)
|
||||
}
|
||||
// if err == nil {
|
||||
// bj, _ := json.Marshal(srs)
|
||||
// logrus.Debug("series:,string"(bj))
|
||||
// }
|
||||
return srs, err
|
||||
}
|
||||
|
||||
//
|
||||
// func (co *Coaster) UpdateTray(cr *Core) (*Series, error) {
|
||||
// cr.Mu1.Lock()
|
||||
// defer cr.Mu1.Unlock()
|
||||
// //尝试从内存读取tray对象
|
||||
// tr, trayFounded := cr.TrayMap[co.InstID]
|
||||
// if !trayFounded {
|
||||
// tr1, err := co.LoadTray(cr)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// cr.TrayMap[co.InstID] = tr1
|
||||
// tr = tr1
|
||||
// }
|
||||
// srs, seriesFounded := tr.SeriesMap["period"+co.Period]
|
||||
// err := errors.New("")
|
||||
// if !seriesFounded {
|
||||
// srs1, err := tr.NewSeries(cr, co.Period)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
// tr.SeriesMap["period"+co.Period] = srs1
|
||||
// } else {
|
||||
// err = srs.Refresh(cr)
|
||||
// }
|
||||
// // if err == nil {
|
||||
// // bj, _ := json.Marshal(srs)
|
||||
// // logrus.Debug("series:,string"(bj))
|
||||
// // }
|
||||
// return srs, err
|
||||
// }
|
||||
//
|
||||
// TODO
|
||||
func (co *Coaster) LoadTray(cr *Core) (*Tray, error) {
|
||||
tray := Tray{}
|
||||
tray.Init(co.InstID)
|
||||
prs := cr.Cfg.Config.Get("candleDimentions").MustArray()
|
||||
for _, v := range prs {
|
||||
tray.NewSeries(cr, v.(string))
|
||||
}
|
||||
return &tray, nil
|
||||
}
|
||||
// func (co *Coaster) LoadTray(cr *Core) (*Tray, error) {
|
||||
// tray := Tray{}
|
||||
// tray.Init(co.InstID)
|
||||
// prs := cr.Cfg.Config.Get("candleDimentions").MustArray()
|
||||
// for _, v := range prs {
|
||||
// tray.NewSeries(cr, v.(string))
|
||||
// }
|
||||
// return &tray, nil
|
||||
// }
|
||||
|
Loading…
x
Reference in New Issue
Block a user