尝试在报错时补齐缺少的candle序列
This commit is contained in:
		
							parent
							
								
									254646677e
								
							
						
					
					
						commit
						401f722644
					
				@ -4,12 +4,12 @@ import (
 | 
				
			|||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"github.com/phyer/core"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
 | 
						"regexp"
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/phyer/core"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// "sync"
 | 
						// "sync"
 | 
				
			||||||
	"time"
 | 
						"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"
 | 
					// setName := "candle" + period + "|" + instId + "|sortedSet"
 | 
				
			||||||
// count: 倒推多少个周期开始拿数据
 | 
					// count: 倒推多少个周期开始拿数据
 | 
				
			||||||
// from: 倒推的起始时间点
 | 
					// from: 倒推的起始时间点
 | 
				
			||||||
@ -244,6 +257,13 @@ func GetRangeCandleSortedSet(cr *core.Core, setName string, count int, from time
 | 
				
			|||||||
	if err != nil || len(keyAry) == 0 {
 | 
						if err != nil || len(keyAry) == 0 {
 | 
				
			||||||
		logrus.Warning("no record with cmd:  ZRevRangeByScore ", "setName: ", setName, " from: ", froms, " sts: ", sts, " err:", err.Error())
 | 
							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)
 | 
							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
 | 
							return &cdl, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for _, str := range keyAry {
 | 
						for _, str := range keyAry {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user