zhangzengfei
2024-10-19 1ca4879df9cc3c22181b2a200aa4b793116d3d35
main.go
@@ -3,82 +3,80 @@
import (
   "data_msg_push_server/config"
   "data_msg_push_server/service"
   "flag"
   "fmt"
   "time"
   "basic.com/valib/logger.git"
)
var env = flag.String("config", "config", "read storage info")
func init() {
   config.Init(*env)
   config.Init()
}
func main() {
   fmt.Println("hello!!!")
   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)
   //result,err  := service.GetData()
   //if err != nil {
   //   fmt.Println(err)
   //}
   //if result != nil{
   //
   //}
   <-done
   fmt.Println("程序已退出")
   //fmt.Println(res)
   //fmt.Println(err)
   logger.Debug("程序已退出")
}
func runEvery(done chan<- bool){
   ticker := time.NewTicker(10 * time.Second)
func runEvery(done chan<- bool) {
   ticker := time.NewTicker(time.Duration(config.Options.Interval) * time.Second)
   defer ticker.Stop()
   for{
   for {
      select {
      case <-ticker.C:
         fmt.Println("开始执行函数。。。")
         logger.Debug("开始执行推送任务")
         doServer()
         fmt.Println("本次执行完毕, 当前所有数据已发送!!!")
         logger.Debug("本次执行完毕, 当前所有数据已发送!!!")
         time.Sleep(10 * time.Second)
      }
   }
}
func doServer()  {
func doServer() {
   total := 0
   retryCount := 0
   for {
      t,err := service.GetTotal()
      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("服务端连接状态connectStatus: ", connectStatus)
            if connectStatus == true {
               url := config.ServUrls.ServerUrl
               url := config.Options.ServerUrl
               result, err1 := service.GetData()
               if err1 != nil {
                  fmt.Println(err1)
                  logger.Warn("获取es数据失败,", err1.Error())
                  return
               }
               id, errs2 := service.SendData(result, url)
               fmt.Println("data id is: ",id)
               if errs2 == nil{
                  //delStatus := service.DeleteData(id)
                  markStatus := service.MarkData(id)
                  fmt.Println(markStatus)
               id, err := service.SendData(result, url)
               logger.Debug("推送的数据 id: ", result.PicId)
               if err == nil {
                  markStatus := service.MarkData(result.PicId)
                  logger.Debug("记录推送状态 markStatus: ", markStatus)
               } else {
                  logger.Debugf("推送的数据失败 id: %s, err:%s", id, err.Error())
                  time.Sleep(5 * time.Second)
                  retryCount += 1
               }
               break
            } else {
               fmt.Println("5秒后尝试重新连接。。。")
               logger.Debug("服务端连接失败, 5秒后尝试重新连接。。。")
               time.Sleep(5 * time.Second)
            }
         }