e372e102fffaeb90ae16e006a7f97efe01d89873.svn-base 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/kptyun/KPTCOMM/comm"
  5. "github.com/kptyun/KPTCOMM/mdns"
  6. "github.com/kptyun/KPTCOMM/models"
  7. "github.com/kptyun/KPTCOMM/pkg/logging"
  8. "github.com/kptyun/KPTCOMM/pkg/setting"
  9. "github.com/kptyun/KPTCOMM/routers"
  10. "log"
  11. "net/http"
  12. "strings"
  13. //"unsafe"
  14. )
  15. // @title 科湃腾Go语言后台API
  16. // @version 1.1.2
  17. // @description kptyun_service
  18. // @contact.name 朱红宾
  19. // @contact.url https://www.dairyinfo.com.cn
  20. // @contact.email kptzhu@163.com
  21. // @host
  22. // @BasePath /
  23. func main() {
  24. setting.Setup("")
  25. models.Setup()
  26. logging.Setup()
  27. //inject.Init()
  28. //err := inject.LoadCasbinPolicyData()
  29. //if err != nil {
  30. // panic("加载casbin策略数据发生错误: " + err.Error())
  31. //}
  32. routersInit := routers.InitRouter()
  33. readTimeout := setting.ServerSetting.ReadTimeout
  34. writeTimeout := setting.ServerSetting.WriteTimeout
  35. endPoint := fmt.Sprintf(":%d", setting.ServerSetting.HttpPort)
  36. maxHeaderBytes := 1 << 20
  37. server := &http.Server{
  38. Addr: endPoint,
  39. Handler: routersInit,
  40. ReadTimeout: readTimeout,
  41. WriteTimeout: writeTimeout,
  42. MaxHeaderBytes: maxHeaderBytes,
  43. }
  44. //fmt.Println(unsafe.Alignof(unintptr(0)))
  45. log.Printf("[info] start http server listening %s", endPoint)
  46. if setting.CommSetting.PortName != "" {
  47. go comm.OpenComm()
  48. }
  49. if strings.Trim(setting.ServerSetting.Mdns_servicename, " ") != "" {
  50. go mdns.Mdns(strings.Trim(setting.ServerSetting.Mdns_servicename, " "), setting.ServerSetting.Mdns_serviceport)
  51. }
  52. //ginpprof.Wrap(routersInit)
  53. _ = server.ListenAndServe()
  54. // If you want Graceful Restart, you need a Unix system and download github.com/fvbock/endless
  55. //endless.DefaultReadTimeOut = readTimeout
  56. //endless.DefaultWriteTimeOut = writeTimeout
  57. //endless.DefaultMaxHeaderBytes = maxHeaderBytes
  58. //server := endless.NewServer(endPoint, routersInit)
  59. //server.BeforeBegin = func(add string) {
  60. // log.Printf("Actual pid is %d", syscall.Getpid())
  61. //}
  62. //
  63. //err := server.ListenAndServe()
  64. //if err != nil {
  65. // log.Printf("Server err: %v", err)
  66. //}
  67. }