sunty
2024-05-27 6597287fc412ce914aba41fe571ed05817cf371c
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
84
85
86
87
88
89
90
package main
 
import (
    "basic.com/CloudAI/protomsg.git/analysis"
    "fmt"
    "google.golang.org/grpc"
    "net"
    "ruleModelEngine/api/analysisApi"
    "ruleModelEngine/cache"
    "ruleModelEngine/config"
    "ruleModelEngine/db"
    "ruleModelEngine/task"
 
    //"ruleModelEngine/task"
 
    //"annotation_service/db"
    "basic.com/valib/logger.git"
    "flag"
    "ruleModelEngine/rule"
    "time"
)
 
var env = flag.String("app", "app", "read database info")
 
func init() {
    config.Init(*env)
    var logFile = config.LogConf.Path + "annotation_service.log"
    logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge)
    logger.Info("loginit success !")
    dbErr := db.ConnectDB()
    if dbErr != nil {
        logger.Error("数据库连接失败", dbErr)
        return
    }
    logger.Info("ConnectDB success !")
    cacheErr := cache.DeviceCacheInit()
    if cacheErr != nil {
        logger.Error("设备表缓存失败", cacheErr)
        return
    }
    logger.Info("cache device success !")
}
 
func initApiServer() {
    ln, err := net.Listen("tcp", config.Api.Host+":"+config.Api.Port)
    if err != nil {
        logger.Fatal("grpc server init error: %v", err.Error())
        //panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
    }
    s := grpc.NewServer()
    analysis.RegisterAnalysisServiceServer(s, &analysisApi.Server{})
    err = s.Serve(ln)
    if err != nil {
        logger.Fatal("grpc server init error: %v", err.Error())
        //panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
    }
}
 
func main() {
    //db.UpdatePersonStatusByIds()
    immediate := flag.Bool("immediate", true, "whether to execute immediately")
    flag.Parse()
 
    if *immediate {
        logger.Info("Executing immediately...")
        rule.ExecuteTask()
    }
    r, _ := db.QueryByDays(3)
    for _, id := range r {
        task.TaskAnalysisService(id)
    }
    fmt.Println("ids: ", len(r))
    return
    //task.TaskAnalysisService("3407b20e-6343-4832-88fa-a8e986552532")
    go initApiServer()
    //return
    now := time.Now()
    next := time.Date(now.Year(), now.Month(), now.Day()+1, 1, 0, 0, 0, now.Location())
    duration := next.Sub(now)
    timer := time.NewTimer(duration)
    logger.Info("The program has started and will execute at one o'clock in the early morning every night.")
    for {
        <-timer.C
        logger.Info("Executing at 1 AM...")
        rule.ExecuteTask()
        next = next.Add(24 * time.Hour)
        timer.Reset(next.Sub(time.Now()))
    }
 
}