package server import ( "context" "fmt" "net/http" "git.ostiwe.com/ostiwe-com/status/modules/db" appLog "git.ostiwe.com/ostiwe-com/status/modules/log" "git.ostiwe.com/ostiwe-com/status/modules/scheduler" "git.ostiwe.com/ostiwe-com/status/pkg/args" "git.ostiwe.com/ostiwe-com/status/router" "git.ostiwe.com/ostiwe-com/status/service" "github.com/sirupsen/logrus" ) func Run(serverArgs *args.ServerCmd) { connect, err := db.Connect() if err != nil { appLog.Global.Get(appLog.SYSTEM).Error(fmt.Sprintf("Startup server error, failed connect to database: %v", err)) return } db.SetGlobal(connect) scheduler.GlobalAppScheduler, err = scheduler.NewAppScheduler() if err != nil { appLog.Global.Get(appLog.SYSTEM).Error(fmt.Sprintf("Startup server error, failed create scheduler: %v", err)) return } appLog.Global.Get(appLog.SYSTEM).Info("Start service observer") service.GlobalCheckService = service.NewCheck(scheduler.GlobalAppScheduler) if err = service.GlobalCheckService.RegisterTasks(context.Background()); err != nil { appLog.Global.Get(appLog.SYSTEM).Error(fmt.Sprintf("Startup server error, failed create observe jobs: %v", err)) return } if err = scheduler.GlobalAppScheduler.StartJobs(); err != nil { appLog.Global.Get(appLog.SYSTEM).Error(fmt.Sprintf("Startup server error, failed start jobs: %v", err)) return } appLog.Global.Put(appLog.SERVER, logrus.New()) appLog.Global.Get(appLog.SERVER).Info("Startup server on port: ", serverArgs.Port) err = http.ListenAndServe(fmt.Sprintf(":%s", serverArgs.Port), router.InitRoutes()) if err != nil { appLog.Global.Get(appLog.SERVER).Error(fmt.Sprintf("Startup server error: %v", err)) } }