自动更新管控端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.0 KiB

package main
import (
"log"
"os"
"os/signal"
"syscall"
"xttbinlog/config"
"xttbinlog/syncer"
"gopkg.in/yaml.v2"
)
func main() {
// 读取配置
cfg, err := loadConfig("config.yaml")
if err != nil {
log.Fatalf("加载配置失败: %v", err)
}
// 创建数据同步器
syncer, err := syncer.NewDataSyncer(cfg)
if err != nil {
log.Fatalf("创建同步器失败: %v", err)
}
// 处理信号
setupSignalHandler(syncer)
// 启动同步
if err := syncer.Start(); err != nil {
log.Fatalf("启动同步失败: %v", err)
}
}
func loadConfig(filename string) (*config.Config, error) {
data, err := os.ReadFile(filename)
if err != nil {
return nil, err
}
var cfg config.Config
err = yaml.Unmarshal(data, &cfg)
if err != nil {
return nil, err
}
return &cfg, nil
}
func setupSignalHandler(syncer *syncer.DataSyncer) {
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
go func() {
sig := <-sigChan
log.Printf("接收到信号: %v", sig)
syncer.Stop()
os.Exit(0)
}()
}