main.go 1.1 KB

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