qixiaoning
2025-07-25 94f3085afd10d76fa6e0640b5eed1d615b11ecea
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
package service
 
import (
    "time"
 
    "basic.com/valib/go-aiot.git/client"
    "basic.com/valib/logger.git"
)
 
const (
    // 集群数据上报
    ClusterDataReport = "cluster-data-report"
    // 设备安装数据上报
    DeviceSdkAppDataReport = "device-sdk-app-data-report"
    // 摄像机上报
    CameraDataReport = "camera-data-report"
    // 摄像机传感器上报
    SensorDataReport = "sensor-data-report"
    // 国标摄像机上报
    CameraGb28181DataReport = "camera-gb28181-data-report"
    // 场景上报
    ScenesDataReport = "scenes-data-report"
    // 算力设置上报
    PollConfigDataReport = "poll-config-data-report"
)
 
const (
    // 集群数据上报间隔时长
    AiotClusterReport = 60 * time.Second
    // 设备安装信息上报间隔
    AiotDeviceAppSdkReport = 120 * time.Second
    // 摄像机上报间隔
    AiotCameraDataReport = 120 * time.Second
)
 
// 执行数据上报
func startSync(cli *client.Client) {
    // 集群同步ticker
    clusterTicker := time.NewTicker(AiotClusterReport)
    // 设备信息同步ticker
    deviceTicker := time.NewTicker(AiotDeviceAppSdkReport)
    // 同步摄像机
    cameraTicker := time.NewTicker(AiotCameraDataReport)
 
    // 启动同步
    go func() {
        defer func() {
            if r := recover(); r != nil {
                logger.Errorf("startSync recover r=%v", r)
            }
        }()
 
        for {
            select {
            case <-clusterTicker.C:
                if !cli.IsClosed() {
                    // 同步集群信息
                    go syncClusterData(cli)
                }
            case <-deviceTicker.C:
                if !cli.IsClosed() {
                    // 同步设备信息
                    go syncDeviceInfo(cli)
                }
            case <-cameraTicker.C:
                if !cli.IsClosed() {
                    // 同步摄像机
                    go syncCamera(cli)
                }
            }
        }
    }()
    if !cli.IsClosed() {
        // 同步集群信息
        syncClusterData(cli)
        // 同步设备信息
        syncDeviceInfo(cli)
        // 同步摄像机
        syncCamera(cli)
    }
}