main.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. _ "MeterService/core/config" // 加载配置文件,需要放在第一行
  4. "MeterService/core/db/mysql"
  5. "MeterService/core/logger" // 加载logger,放第二行
  6. "MeterService/meter"
  7. "MeterService/service/downStreamService"
  8. "MeterService/core/db"
  9. //"MeterService/core/db/sqlite"
  10. "MeterService/data"
  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. meter.InitMeterProto()
  29. // 初始化电表数据
  30. if data.InitData() {
  31. logger.Debug("初始化电表数据成功!")
  32. // 启动web服务
  33. go webService.NewWebServer()
  34. time.Sleep(time.Second * 15)
  35. // 启动downStream服务
  36. go downStreamService.NewDownStreamService()
  37. }
  38. go func() {
  39. ch := make(chan os.Signal)
  40. signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT)
  41. <-ch
  42. logger.Info("即将退出!")
  43. os.Exit(0)
  44. }()
  45. logger.Info("程序运行中...")
  46. for {
  47. time.Sleep(5 * time.Minute)
  48. }
  49. }