优化: 调整各周期数据采集参数配置
- 优化5m至5D各周期的处理时间 - 调整历史数据获取长度 - 合理分配API请求压力
This commit is contained in:
		
							parent
							
								
									866e526d7b
								
							
						
					
					
						commit
						cef2dcdcf4
					
				
							
								
								
									
										60
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								main.go
									
									
									
									
									
								
							@ -3,6 +3,7 @@ package main
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"context"
 | 
						"context"
 | 
				
			||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// "fmt"
 | 
						// "fmt"
 | 
				
			||||||
	"math/rand"
 | 
						"math/rand"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
@ -195,7 +196,7 @@ func LoopAllCoinsList(period int64, delay int64, mdura int, barPeriod string, on
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	for {
 | 
						for {
 | 
				
			||||||
		allScore, _ := <-allScoreChan
 | 
							allScore := <-allScoreChan
 | 
				
			||||||
		logrus.Debug("allCoins allScore", allScore)
 | 
							logrus.Debug("allCoins allScore", allScore)
 | 
				
			||||||
		if len(allScore) == 0 {
 | 
							if len(allScore) == 0 {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
@ -204,7 +205,18 @@ func LoopAllCoinsList(period int64, delay int64, mdura int, barPeriod string, on
 | 
				
			|||||||
		utils.TickerWrapper(time.Duration(mdura)*time.Second, allScore, func(i int, ary []string) error {
 | 
							utils.TickerWrapper(time.Duration(mdura)*time.Second, allScore, func(i int, ary []string) error {
 | 
				
			||||||
			nw := time.Now()
 | 
								nw := time.Now()
 | 
				
			||||||
			rand.Seed(nw.UnixNano())
 | 
								rand.Seed(nw.UnixNano())
 | 
				
			||||||
			ct := rand.Intn(rge)
 | 
					
 | 
				
			||||||
 | 
								// 修改随机逻辑
 | 
				
			||||||
 | 
								// 将随机范围分成两部分:80%的概率获取最近30%的数据,20%的概率获取剩余历史数据
 | 
				
			||||||
 | 
								var ct int
 | 
				
			||||||
 | 
								if rand.Float64() < 0.8 {
 | 
				
			||||||
 | 
									// 80%的概率获取最近30%的数据
 | 
				
			||||||
 | 
									ct = rand.Intn(rge * 3 / 10)
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									// 20%的概率获取剩余历史数据
 | 
				
			||||||
 | 
									ct = rand.Intn(rge)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			minutes, _ := cr.PeriodToMinutes(barPeriod)
 | 
								minutes, _ := cr.PeriodToMinutes(barPeriod)
 | 
				
			||||||
			tmi := nw.UnixMilli()
 | 
								tmi := nw.UnixMilli()
 | 
				
			||||||
			tmi = tmi - tmi%60000
 | 
								tmi = tmi - tmi%60000
 | 
				
			||||||
@ -242,58 +254,58 @@ func main() {
 | 
				
			|||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员5m
 | 
						// 全员5m
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 5m")
 | 
				
			||||||
		LoopAllCoinsList(6, 0, 120, "5m", 9, 33)
 | 
							LoopAllCoinsList(6, 0, 180, "5m", 20, 50) // 3分钟内完成,获取近4小时数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员15m candle
 | 
						// 全员15m candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList2")
 | 
							logrus.Info("LoopAllCoinsList - 15m")
 | 
				
			||||||
		LoopAllCoinsList(19, 90, 380, "15m", 12, 23)
 | 
							LoopAllCoinsList(19, 90, 360, "15m", 24, 100) // 6分钟内完成,获取近24小时数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员30m candle
 | 
						// 全员30m candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList2")
 | 
							logrus.Info("LoopAllCoinsList - 30m")
 | 
				
			||||||
		LoopAllCoinsList(25, 0, 500, "30m", 23, 37)
 | 
							LoopAllCoinsList(25, 0, 600, "30m", 48, 150) // 10分钟内完成,获取近2天数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员1H candle
 | 
						// 全员1H candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList2")
 | 
							logrus.Info("LoopAllCoinsList - 1H")
 | 
				
			||||||
		LoopAllCoinsList(38, 0, 760, "1H", 28, 31)
 | 
							LoopAllCoinsList(38, 0, 900, "1H", 72, 200) // 15分钟内完成,获取近3天数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员2H candle
 | 
						// 全员2H candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList2")
 | 
							logrus.Info("LoopAllCoinsList - 2H")
 | 
				
			||||||
		LoopAllCoinsList(41, 0, 820, "2H", 35, 83)
 | 
							LoopAllCoinsList(41, 0, 1200, "2H", 90, 250) // 20分钟内完成,获取近7天数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员4小时candle
 | 
						// 全员4小时candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 4H")
 | 
				
			||||||
		LoopAllCoinsList(69, 0, 1380, "4H", 50, 91)
 | 
							LoopAllCoinsList(69, 0, 1500, "4H", 120, 300) // 25分钟内完成,获取近20天数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员6小时candle
 | 
						// 全员6小时candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 6H")
 | 
				
			||||||
		LoopAllCoinsList(72, 0, 1440, "6H", 60, 103)
 | 
							LoopAllCoinsList(72, 0, 1800, "6H", 140, 350) // 30分钟内完成,获取近30天数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员12小时candle
 | 
						// 全员12小时candle
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 12H")
 | 
				
			||||||
		LoopAllCoinsList(89, 0, 1760, "12H", 72, 117)
 | 
							LoopAllCoinsList(89, 0, 2100, "12H", 160, 400) // 35分钟内完成,获取近2个月数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员1Day candle & maX
 | 
						// 全员1Day candle & maX
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 1D")
 | 
				
			||||||
		LoopAllCoinsList(94, 4, 1920, "1D", 84, 221)
 | 
							LoopAllCoinsList(94, 4, 2400, "1D", 180, 500) // 40分钟内完成,获取近6个月数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员2Day candle & maX
 | 
						// 全员2Day candle & maX
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 2D")
 | 
				
			||||||
		LoopAllCoinsList(192, 4, 3840, "2D", 92, 443)
 | 
							LoopAllCoinsList(192, 4, 3000, "2D", 200, 600) // 50分钟内完成,获取近1年数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	// 全员5Day candle & maX
 | 
						// 全员5Day candle & maX
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		logrus.Info("LoopAllCoinsList1")
 | 
							logrus.Info("LoopAllCoinsList - 5D")
 | 
				
			||||||
		LoopAllCoinsList(320, 4, 6400, "5D", 100, 879)
 | 
							LoopAllCoinsList(320, 4, 3600, "5D", 250, 700) // 60分钟内完成,获取近2年数据
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
	go func() {
 | 
						go func() {
 | 
				
			||||||
		LoopSaveCandle(&cr)
 | 
							LoopSaveCandle(&cr)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user