main.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/sirupsen/logrus"
  6. "lcfns/eventServer"
  7. "lcfns/gatewayServer"
  8. "lcfns/global"
  9. "lcfns/initialize"
  10. "lcfns/service/system"
  11. "net/http"
  12. "os"
  13. "time"
  14. )
  15. func main() {
  16. logrus.SetLevel(logrus.DebugLevel)
  17. logrus.SetOutput(os.Stdout)
  18. logrus.SetReportCaller(true)
  19. go eventServer.StartEventServer() //摄像头事件监听服务端
  20. go gatewayServer.GatewayServe() //网关服务端
  21. initialize.OtherInit() //初始化缓存
  22. //initialize.Redis()
  23. global.Db = initialize.Gorm() //初始化数据库orm
  24. if global.Db != nil {
  25. // 程序结束前关闭数据库链接
  26. db, _ := global.Db.DB()
  27. defer db.Close()
  28. }
  29. if global.Config.System.UseMultipoint || global.Config.System.UseRedis {
  30. // 初始化redis服务
  31. initialize.Redis()
  32. }
  33. // 从db加载jwt黑名单数据
  34. if global.Db != nil {
  35. system.LoadAll()
  36. }
  37. Router := initialize.Routers()
  38. address := fmt.Sprintf(":%d", global.Config.System.Addr)
  39. s := initServer(address, Router)
  40. logrus.Error(s.ListenAndServe().Error())
  41. }
  42. type server interface {
  43. ListenAndServe() error
  44. }
  45. func initServer(address string, router *gin.Engine) server {
  46. return &http.Server{
  47. Addr: address,
  48. Handler: router,
  49. ReadTimeout: 20 * time.Second,
  50. WriteTimeout: 20 * time.Second,
  51. MaxHeaderBytes: 1 << 20,
  52. }
  53. }