server stop 추가

This commit is contained in:
2023-08-22 11:45:31 +09:00
parent 81d069cddf
commit 2addec5adf

View File

@ -100,17 +100,9 @@ func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server {
server := &Server{ server := &Server{
httpserver: &http.Server{Addr: addr, Handler: serveMux}, httpserver: &http.Server{Addr: addr, Handler: serveMux},
interrupt: make(chan os.Signal, 1),
} }
server.httpserver.SetKeepAlivesEnabled(true) server.httpserver.SetKeepAlivesEnabled(true)
signal.Notify(server.interrupt, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
go func() {
c := <-server.interrupt
logger.Println("interrupt!!!!!!!! :", c.String())
server.shutdown()
}()
return server return server
} }
@ -153,6 +145,14 @@ func (server *Server) shutdown() {
} }
} }
func (server *Server) Stop() {
if server.interrupt != nil {
server.interrupt <- os.Interrupt
} else {
server.shutdown()
}
}
// Start : // Start :
func (server *Server) Start() error { func (server *Server) Start() error {
if server.httpserver != nil { if server.httpserver != nil {
@ -160,6 +160,15 @@ func (server *Server) Start() error {
if r != nil { if r != nil {
return r return r
} }
server.interrupt = make(chan os.Signal, 1)
signal.Notify(server.interrupt, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
go func() {
c := <-server.interrupt
logger.Println("interrupt!!!!!!!! :", c.String())
server.shutdown()
}()
proxyListener := &proxyproto.Listener{ proxyListener := &proxyproto.Listener{
Listener: ln, Listener: ln,
ReadHeaderTimeout: 10 * time.Second, ReadHeaderTimeout: 10 * time.Second,