mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 09:05:30 +00:00
Started server renewal
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"githib.com/Theodor-Springmann-Stiftung/kgpz_web/app"
|
"githib.com/Theodor-Springmann-Stiftung/kgpz_web/app"
|
||||||
"githib.com/Theodor-Springmann-Stiftung/kgpz_web/helpers"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServerState int
|
type ServerState int
|
||||||
@@ -31,7 +30,6 @@ const (
|
|||||||
// - we reload all clients
|
// - we reload all clients
|
||||||
// - if data validity catastrophically fails, we restart the router to map error pages.
|
// - if data validity catastrophically fails, we restart the router to map error pages.
|
||||||
type Server struct {
|
type Server struct {
|
||||||
Events helpers.EventMux[ServerState]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Start(k *app.KGPZ) *Server {
|
func Start(k *app.KGPZ) *Server {
|
||||||
@@ -46,23 +44,6 @@ func (s *Server) Start() {
|
|||||||
s.restartHandler()
|
s.restartHandler()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) Restart() {
|
|
||||||
s.Events.Publish(ShutDown)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) Kill() {
|
|
||||||
s.Events.Publish(Kill)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) restartHandler() {
|
|
||||||
shutdown := s.Events.Subscribe(1)
|
|
||||||
go func() {
|
|
||||||
s.BreakUntil(shutdown, ShuttedDown)
|
|
||||||
s.Events.Publish(Restarting)
|
|
||||||
s.Start()
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) runnerHandler(srv *http.Server) {
|
func (s *Server) runnerHandler(srv *http.Server) {
|
||||||
|
|
||||||
shutttingdown := s.Events.Subscribe(1)
|
shutttingdown := s.Events.Subscribe(1)
|
||||||
@@ -95,11 +76,6 @@ func (s *Server) runnerHandler(srv *http.Server) {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) shutdownHandler(srv *http.Server) {
|
|
||||||
|
|
||||||
shutdown := s.Events.Subscribe(1)
|
|
||||||
go func() {
|
go func() {
|
||||||
s.BreakUntil(shutdown, ShutDown)
|
s.BreakUntil(shutdown, ShutDown)
|
||||||
fmt.Println("Shutting down server")
|
fmt.Println("Shutting down server")
|
||||||
@@ -111,30 +87,3 @@ func (s *Server) shutdownHandler(srv *http.Server) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) killHandler(srv *http.Server) {
|
|
||||||
|
|
||||||
kill := s.Events.Subscribe(1)
|
|
||||||
go func() {
|
|
||||||
s.BreakUntil(kill, Kill)
|
|
||||||
fmt.Println("Killing server")
|
|
||||||
if err := srv.Shutdown(nil); err != nil {
|
|
||||||
fmt.Println("Error shutting down server")
|
|
||||||
}
|
|
||||||
|
|
||||||
s.Events.Publish(Killing)
|
|
||||||
}()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *Server) BreakUntil(c chan ServerState, state ServerState) {
|
|
||||||
loop:
|
|
||||||
for {
|
|
||||||
msg := <-c
|
|
||||||
if msg == state {
|
|
||||||
break loop
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
s.Events.Unsubscribe(c)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user