From d086208db635af26acd662c6d882bd4ced2c8772 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 22 三月 2024 18:56:23 +0800 Subject: [PATCH] 添加失败重试控制 --- main.go | 38 +++++++++++++++++++++++++++----------- 1 files changed, 27 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 62e1db2..087099e 100644 --- a/main.go +++ b/main.go @@ -6,6 +6,8 @@ "fmt" "time" + + "basic.com/valib/logger.git" ) func init() { @@ -14,22 +16,25 @@ func main() { done := make(chan bool) + // 鏃ュ織鍒濆鍖� + var logFile = config.LogConf.Path + "esSyncClient.log" + logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge) go runEvery(done) <-done - fmt.Println("绋嬪簭宸查��鍑�") + logger.Debug("绋嬪簭宸查��鍑�") } func runEvery(done chan<- bool) { - ticker := time.NewTicker(10 * time.Second) + ticker := time.NewTicker(time.Duration(config.Options.Interval) * time.Second) defer ticker.Stop() for { select { case <-ticker.C: - fmt.Println("寮�濮嬫墽琛屽嚱鏁般�傘�傘��") + logger.Debug("寮�濮嬫墽琛屾帹閫佷换鍔�") doServer() - fmt.Println("鏈鎵ц瀹屾瘯, 褰撳墠鎵�鏈夋暟鎹凡鍙戦�侊紒锛侊紒") + logger.Debug("鏈鎵ц瀹屾瘯, 褰撳墠鎵�鏈夋暟鎹凡鍙戦�侊紒锛侊紒") time.Sleep(10 * time.Second) } } @@ -37,35 +42,46 @@ func doServer() { total := 0 + retryCount := 0 for { t, err := service.GetTotal() if err != nil { - fmt.Println(err) + logger.Error(err.Error()) + return } total = t - fmt.Println("鏈彂閫佺殑鏁版嵁鎬婚噺锛�", total) - if total == 0 { + logger.Debugf("鏈彂閫佺殑鏁版嵁鎬婚噺:%d, 閲嶈瘯娆℃暟:%d", total, retryCount) + if total == 0 || retryCount > 10 { break } else { for { connectStatus := service.ConnectControl() - fmt.Println("connectStatus: ", connectStatus) + logger.Debug("鏈嶅姟绔繛鎺ョ姸鎬乧onnectStatus: ", connectStatus) if connectStatus == true { url := config.Options.ServerUrl result, err1 := service.GetData() if err1 != nil { - fmt.Println(err1) + logger.Warn(err1.Error()) + time.Sleep(1 * time.Second) + retryCount += 1 + break } + id, errs2 := service.SendData(result, url) - fmt.Println("data id is: ", id) + logger.Debug("鎺ㄩ�佺殑鏁版嵁 id: ", id) if errs2 == nil { //delStatus := service.DeleteData(id) markStatus := service.MarkData(id) fmt.Println(markStatus) + logger.Debug("璁板綍鎺ㄩ�佺姸鎬� markStatus: ", markStatus) + } else { + logger.Debug("鎺ㄩ�佺殑鏁版嵁澶辫触 id: ", id) + time.Sleep(1 * time.Second) + retryCount += 1 } break } else { - fmt.Println("5绉掑悗灏濊瘯閲嶆柊杩炴帴銆傘�傘��") + logger.Debug("鏈嶅姟绔繛鎺ュけ璐�,5绉掑悗灏濊瘯閲嶆柊杩炴帴銆傘�傘��") time.Sleep(5 * time.Second) } } -- Gitblit v1.8.0