zhangzengfei
2024-03-12 ccb6685b1b28dcd7d376887504cd98b5cd410b44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package main
 
import (
    "data_msg_push_server/config"
    "data_msg_push_server/service"
 
    "fmt"
    "time"
 
    "basic.com/valib/logger.git"
)
 
func init() {
    config.Init()
}
 
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
    logger.Debug("程序已退出")
}
 
func runEvery(done chan<- bool) {
    ticker := time.NewTicker(time.Duration(config.Options.Interval) * time.Second)
    defer ticker.Stop()
 
    for {
        select {
        case <-ticker.C:
            logger.Debug("开始执行推送任务")
            doServer()
            logger.Debug("本次执行完毕, 当前所有数据已发送!!!")
            time.Sleep(10 * time.Second)
        }
    }
}
 
func doServer() {
    total := 0
    for {
        t, err := service.GetTotal()
        if err != nil {
            logger.Error(err.Error())
            return
        }
        total = t
        logger.Debug("未发送的数据总量:", total)
        if total == 0 {
            break
        } else {
            for {
                connectStatus := service.ConnectControl()
                logger.Debug("服务端连接状态connectStatus: ", connectStatus)
                if connectStatus == true {
                    url := config.Options.ServerUrl
                    result, err1 := service.GetData()
                    if err1 != nil {
                        logger.Warn(err1.Error())
                        break
                    }
 
                    id, errs2 := service.SendData(result, url)
                    logger.Debug("推送的数据 id: ", id)
                    if errs2 == nil {
                        //delStatus := service.DeleteData(id)
                        markStatus := service.MarkData(id)
                        fmt.Println(markStatus)
                        logger.Debug("记录推送状态 markStatus: ", markStatus)
                    }
                    break
                } else {
                    logger.Debug("服务端连接失败,5秒后尝试重新连接。。。")
                    time.Sleep(5 * time.Second)
                }
            }
        }
    }
}