package main import ( _ "MeterService/core/config" // 加载配置文件,需要放在第一行 "MeterService/core/db/mysql" "MeterService/core/logger" // 加载logger,放第二行 "MeterService/meter" "MeterService/service/downStreamService" "MeterService/core/db" //"MeterService/core/db/sqlite" "MeterService/data" "MeterService/service/webService" "os" "os/signal" "syscall" "time" ) func main() { // 连接mysql数据库 //DB := db.OpenDb() //defer db.CloseDb(DB) // 连接sqlite //db.OpenDb(sqlite.OpenSQLite) db.OpenDb(mysql.OpenMySql) defer db.CloseDb() // redis db.InitRedis() // 加载电表协议 meter.InitMeterProto() // 初始化电表数据 if data.InitData() { logger.Debug("初始化电表数据成功!") // 启动web服务 go webService.NewWebServer() time.Sleep(time.Second * 15) // 启动downStream服务 go downStreamService.NewDownStreamService() } go func() { ch := make(chan os.Signal) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT) <-ch logger.Info("即将退出!") os.Exit(0) }() logger.Info("程序运行中...") for { time.Sleep(5 * time.Minute) } }