From 401f72264493a3169ca83b494971c02a1e074b76 Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Mon, 13 Jan 2025 13:00:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=9C=A8=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E6=97=B6=E8=A1=A5=E9=BD=90=E7=BC=BA=E5=B0=91=E7=9A=84candle?= =?UTF-8?q?=E5=BA=8F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/extent.go | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/extent.go b/modules/extent.go index 0fdba18..6bfb813 100644 --- a/modules/extent.go +++ b/modules/extent.go @@ -4,12 +4,12 @@ import ( "encoding/json" "errors" "fmt" + "github.com/phyer/core" "os" + "regexp" "strconv" "strings" - "github.com/phyer/core" - // "sync" "time" // @@ -193,6 +193,19 @@ func LoopMakeMaX(cr *core.Core) { } } +func InvokeCandle(cr *core.Core, candleName string, period string, from int64, to int64) error { + restQ := core.RestQueue{ + InstId: candleName, + Bar: period, + Limit: "100", + After: from, + } + js, err := json.Marshal(restQ) + cli := cr.RedisLocalCli + _, err = cli.LPush("restQueue", js).Result() + return err +} + // setName := "candle" + period + "|" + instId + "|sortedSet" // count: 倒推多少个周期开始拿数据 // from: 倒推的起始时间点 @@ -244,6 +257,13 @@ func GetRangeCandleSortedSet(cr *core.Core, setName string, count int, from time if err != nil || len(keyAry) == 0 { logrus.Warning("no record with cmd: ZRevRangeByScore ", "setName: ", setName, " from: ", froms, " sts: ", sts, " err:", err.Error()) logrus.Warning("zrev lens of ary: lens: ", len(ary), "GetRangeSortedSet ZRevRangeByScore:", "setName:", setName, " opt.Max:", opt.Max, " opt.Min:", opt.Min) + parts := strings.Split(setName, "|") + instId := parts[1] + // 定义正则表达式,匹配 maX 或 candle 后面的内容直到第一个竖线 + re := regexp.MustCompile(`(?:maX|candle)([^\|]+)`) + // 使用正则表达式提取匹配的内容 + matches := re.FindStringSubmatch(setName) + err := InvokeCandle(cr, instId, matches[1], fromt, sti) return &cdl, err } for _, str := range keyAry {