53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
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))
|
|
}
|
|
}
|