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