main.go 1.4 KB

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