main.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // package main -- пускач длся сервера на файбере
  2. //
  3. // Команда запуска обновлятора noip.com
  4. // noip-duc -g p78su.ddns.net,p78git.ddns.net --daemonize -u prospero78su -p Lera_07091978
  5. //
  6. // Профилирование:
  7. //
  8. // go tool pprof http://localhost:29080/debug/pprof/profile?seconds=30
  9. package main
  10. import (
  11. "log"
  12. "net/http"
  13. _ "net/http/pprof"
  14. "os"
  15. "time"
  16. "wartank/server"
  17. )
  18. func profile() {
  19. port := "29081"
  20. stage := os.Getenv("STAGE")
  21. if stage == "prod" {
  22. port = "29080"
  23. }
  24. for {
  25. err := http.ListenAndServe("0.0.0.0:"+port, nil)
  26. if err != nil {
  27. log.Printf("profile(): in run pprof, err=\n\t%v\n", err)
  28. }
  29. time.Sleep(time.Second * 1)
  30. }
  31. }
  32. var (
  33. // Version -- версия тега хранилища
  34. Version = ""
  35. // Date -- дата релиза
  36. Date = ""
  37. // GoVersion -- версия компилятора
  38. GoVersion = ""
  39. )
  40. func main() {
  41. log.Printf("server/main():\n\tgo = %v\n\tvers = %v\n\tdate = %v\n", GoVersion, Version, Date)
  42. go profile()
  43. serv, err := server.НовСервер()
  44. if err != nil {
  45. log.Printf("main(): in make IServer, err=\n\t%v\n", err)
  46. os.Exit(1)
  47. }
  48. go func() {
  49. time.Sleep(time.Minute * 20)
  50. serv.CancelApp()
  51. }()
  52. if err := serv.Run(); err != nil {
  53. log.Printf("main(): in run server, err=\n\t%v\n", err)
  54. os.Exit(2)
  55. }
  56. }