main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. _ "MeterService/core/config" // 加载配置文件,需要放在第一行
  4. "MeterService/core/db/mysql"
  5. "MeterService/core/logger" // 加载logger,放第二行
  6. "MeterService/service/downStreamService"
  7. "MeterService/core/db"
  8. //"MeterService/core/db/sqlite"
  9. "MeterService/data"
  10. "MeterService/meter/proto"
  11. "MeterService/service/webService"
  12. "os"
  13. "os/signal"
  14. "syscall"
  15. "time"
  16. )
  17. func main() {
  18. // 连接mysql数据库
  19. //DB := db.OpenDb()
  20. //defer db.CloseDb(DB)
  21. // 连接sqlite
  22. //db.OpenDb(sqlite.OpenSQLite)
  23. db.OpenDb(mysql.OpenMySql)
  24. defer db.CloseDb()
  25. // redis
  26. db.InitRedis()
  27. // 加载电表协议
  28. proto.MeterProtoInit()
  29. // 初始化电表数据
  30. if data.InitData() {
  31. logger.Debug("初始化电表数据成功!")
  32. // 启动web服务
  33. go webService.NewWebServer()
  34. // 启动downStream服务
  35. go downStreamService.NewDownStreamService()
  36. }
  37. go func() {
  38. ch := make(chan os.Signal)
  39. signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT)
  40. <-ch
  41. logger.Info("即将退出!")
  42. os.Exit(0)
  43. }()
  44. logger.Info("程序运行中...")
  45. for {
  46. time.Sleep(5 * time.Minute)
  47. }
  48. }