build.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // package build -- различные строители
  2. package build
  3. import (
  4. "net/http"
  5. _ "net/http/pprof"
  6. "runtime/debug"
  7. "time"
  8. . "wartank/app/lev0/types"
  9. "wartank/app/lev4/applic"
  10. "wartank/kernel"
  11. . "wartank/kernel/kernel_types"
  12. )
  13. func СобратьПриложение() ИПриложение {
  14. go ЗапуститьПрофиль()
  15. bi, _ := debug.ReadBuildInfo()
  16. лог := СобратьЛог("main")
  17. лог.Инфо("ИНФО \tgo = %v\n\tvers = %v\n", bi.GoVersion, bi.Main.Version)
  18. прил := applic.НовПриложение()
  19. go func() {
  20. time.Sleep(time.Minute * 20)
  21. прил.Отменить()
  22. }()
  23. return прил
  24. }
  25. func СобратьЛог(префикс string) ИЯдроЛог {
  26. лог := kernel.НовЛог(префикс)
  27. return лог
  28. }
  29. func ЗапуститьПрофиль() {
  30. лог := СобратьЛог("ПРОФИЛЬ")
  31. port := "29081"
  32. for {
  33. err := http.ListenAndServe("0.0.0.0:"+port, nil)
  34. if err != nil {
  35. лог.Ошибка("profile(): ошибка при запуске профилировщика, err=\n\t%v\n", err)
  36. }
  37. time.Sleep(time.Second * 1)
  38. }
  39. }