排查2D周期sortedSet周期间隔不统一的问题
This commit is contained in:
parent
ad067c6cea
commit
d59911f748
30
candle.go
30
candle.go
@ -181,6 +181,24 @@ func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura
|
|||||||
leng := len(rsp.Data)
|
leng := len(rsp.Data)
|
||||||
// fmt.Println("saveCandle leng: ", leng, " instId: ", instId, " period: ", period)
|
// fmt.Println("saveCandle leng: ", leng, " instId: ", instId, " period: ", period)
|
||||||
logrus.Info("saveCandles leng: ", leng, " instId: ", instId, " period: ", period, " length of rsp.Data: ", len(rsp.Data))
|
logrus.Info("saveCandles leng: ", leng, " instId: ", instId, " period: ", period, " length of rsp.Data: ", len(rsp.Data))
|
||||||
|
// softCandleSegmentList
|
||||||
|
segments := core.Cfg.Config.Get("softCandleSegmentList").MustArray()
|
||||||
|
curSegStartTime := ""
|
||||||
|
for _, v := range segments {
|
||||||
|
cs := CandleSegment{}
|
||||||
|
sv, _ := json.Marshal(v)
|
||||||
|
json.Unmarshal(sv, &cs)
|
||||||
|
if !cs.Enabled {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if cs.Seg == period {
|
||||||
|
curSegStartTime = cs.StartTime
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
curTm, _ := time.ParseInLocation("2006-01-02 15:04.000", curSegStartTime, time.Local)
|
||||||
|
curTmi := curTm.UnixMilli()
|
||||||
|
|
||||||
for k, v := range rsp.Data {
|
for k, v := range rsp.Data {
|
||||||
tmi := ToInt64(v[0])
|
tmi := ToInt64(v[0])
|
||||||
last := ToFloat64(v[4])
|
last := ToFloat64(v[4])
|
||||||
@ -193,6 +211,12 @@ func (core *Core) SaveCandle(instId string, period string, rsp *CandleData, dura
|
|||||||
// logrus.Info("saveCandles last is 0: ", "v[4]: ", v[4], "v[4] type: ", ty, " v4It: ", v4It, "leng: ", leng, " instId: ", instId, " period: ", period, " length of rsp.Data: ", len(rsp.Data), " data:", rsp.Data)
|
// logrus.Info("saveCandles last is 0: ", "v[4]: ", v[4], "v[4] type: ", ty, " v4It: ", v4It, "leng: ", leng, " instId: ", instId, " period: ", period, " length of rsp.Data: ", len(rsp.Data), " data:", rsp.Data)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
minutes, _ := core.PeriodToMinutes(period)
|
||||||
|
if (tmi-curTmi)/(minutes*1000000) != 0 {
|
||||||
|
logrus.Warn("saveCandles error: 当前记录中的时间戳:", curSegStartTime, ",并非周期节点:", period, " 忽略")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
ts, _ := Int64ToTime(tmi)
|
ts, _ := Int64ToTime(tmi)
|
||||||
candle := Candle{
|
candle := Candle{
|
||||||
InstID: instId,
|
InstID: instId,
|
||||||
@ -315,9 +339,9 @@ func (core *Core) SaveUniKey(period string, keyName string, extt time.Duration,
|
|||||||
refName := keyName + "|refer"
|
refName := keyName + "|refer"
|
||||||
refRes, _ := core.RedisLocalCli.GetSet(refName, 1).Result()
|
refRes, _ := core.RedisLocalCli.GetSet(refName, 1).Result()
|
||||||
core.RedisLocalCli.Expire(refName, extt)
|
core.RedisLocalCli.Expire(refName, extt)
|
||||||
// 为保证唯一性机制,防止SaveToSortSet 被重复执行
|
// 为保证唯一性机制,防止SaveToSortSet 被重复执行, ps: 不需要唯一,此操作幂等在redis里
|
||||||
founded, _ := core.findInSortSet(period, keyName, extt, tsi)
|
// founded, _ := core.findInSortSet(period, keyName, extt, tsi)
|
||||||
if len(refRes) != 0 && founded {
|
if len(refRes) != 0 {
|
||||||
logrus.Error("refName exist: ", refName)
|
logrus.Error("refName exist: ", refName)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user