在marscode指导下修改insertIntoPlate
This commit is contained in:
parent
31101f8501
commit
c7d5ad4d32
4
main.go
4
main.go
@ -84,7 +84,9 @@ func main() {
|
|||||||
go func() {
|
go func() {
|
||||||
md.StockRsisProcess(&cr)
|
md.StockRsisProcess(&cr)
|
||||||
}()
|
}()
|
||||||
|
go func() {
|
||||||
|
// md.StockRsisProcess(&cr)
|
||||||
|
}()
|
||||||
// 这些暂时不运行, 以后要不要运行再说
|
// 这些暂时不运行, 以后要不要运行再说
|
||||||
// go func() {
|
// go func() {
|
||||||
// core.CoasterProcess(&cr)
|
// core.CoasterProcess(&cr)
|
||||||
|
@ -4,10 +4,12 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/phyer/core"
|
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/phyer/core"
|
||||||
|
|
||||||
// "sync"
|
// "sync"
|
||||||
"time"
|
"time"
|
||||||
//
|
//
|
||||||
@ -86,29 +88,52 @@ func (cd *MyCandle) Process(cr *core.Core) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cd *MyCandle) InsertIntoPlate(cr *core.Core) (*core.Sample, error) {
|
func (cd *MyCandle) InsertIntoPlate(cr *core.Core) (*core.Sample, error) {
|
||||||
cr.Mu.Lock()
|
if cr == nil {
|
||||||
defer cr.Mu.Unlock()
|
return nil, errors.New("core is nil")
|
||||||
// pl, plateFounded := cr.PlateMap[cd.InstID]
|
|
||||||
// if !plateFounded || pl == nil {
|
|
||||||
pl, _ := LoadPlate(cr, cd.InstID)
|
|
||||||
cr.PlateMap[cd.InstID] = pl
|
|
||||||
// }
|
|
||||||
po, coasterFounded := pl.CoasterMap["period"+cd.Period]
|
|
||||||
err := errors.New("")
|
|
||||||
if !coasterFounded {
|
|
||||||
pl.MakeCoaster(cr, cd.Period)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(po.InstID) == 0 {
|
if cr.Mu == nil {
|
||||||
// logrus.Debug("candle coaster: ", cd.Period, pl.CoasterMap["period"+cd.Period], pl.CoasterMap)
|
return nil, errors.New("core mutex is nil")
|
||||||
//创建失败的原因是原始数据不够,一般发生在服务中断了,缺少部分数据的情况下, 后续需要数据补全措施
|
|
||||||
erstr := fmt.Sprintln("coaster创建失败 candle instID: "+cd.InstID+"; period: "+cd.Period, "coasterFounded: ", coasterFounded, " ", err)
|
|
||||||
err := errors.New(erstr)
|
|
||||||
return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cr.Mu.Lock()
|
||||||
|
defer cr.Mu.Unlock()
|
||||||
|
|
||||||
|
if cr.PlateMap == nil {
|
||||||
|
return nil, errors.New("PlateMap is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
pl, err := LoadPlate(cr, cd.InstID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to load plate: %w", err)
|
||||||
|
}
|
||||||
|
cr.PlateMap[cd.InstID] = pl
|
||||||
|
|
||||||
|
if pl == nil {
|
||||||
|
return nil, errors.New("loaded plate is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
po, coasterFounded := pl.CoasterMap["period"+cd.Period]
|
||||||
|
if !coasterFounded {
|
||||||
|
err := pl.MakeCoaster(cr, cd.Period)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to make coaster: %w", err)
|
||||||
|
}
|
||||||
|
po, coasterFounded = pl.CoasterMap["period"+cd.Period]
|
||||||
|
}
|
||||||
|
|
||||||
|
if !coasterFounded || len(po.InstID) == 0 {
|
||||||
|
return nil, fmt.Errorf("coaster creation failed for instID: %s, period: %s", cd.InstID, cd.Period)
|
||||||
|
}
|
||||||
|
|
||||||
sm, err := po.RPushSample(cr, &cd.Candle, "candle")
|
sm, err := po.RPushSample(cr, &cd.Candle, "candle")
|
||||||
return sm, err
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to push sample: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return sm, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (cad *MyCandle) AddToGeneralCandleChnl(cr *core.Core) {
|
func (cad *MyCandle) AddToGeneralCandleChnl(cr *core.Core) {
|
||||||
suffix := ""
|
suffix := ""
|
||||||
env := os.Getenv("GO_ENV")
|
env := os.Getenv("GO_ENV")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user