Improve shutdown sequence
This commit is contained in:
parent
62de443d3b
commit
f1867c1010
15
main.go
15
main.go
|
@ -191,12 +191,8 @@ func main() {
|
|||
server := &http.Server{Addr: listenAddr}
|
||||
|
||||
// Run the producer
|
||||
go func() {
|
||||
if err := server.ListenAndServe(); err != nil &&
|
||||
err != http.ErrServerClosed {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}()
|
||||
errs := make(chan error, 1)
|
||||
go func() { errs <- server.ListenAndServe() }()
|
||||
|
||||
// Run the consumer
|
||||
ctx, ctxCancel := context.WithCancel(context.Background())
|
||||
|
@ -217,7 +213,12 @@ func main() {
|
|||
// Wait for a termination signal
|
||||
sigs := make(chan os.Signal, 1)
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigs
|
||||
|
||||
select {
|
||||
case <-sigs:
|
||||
case err := <-errs:
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
// Stop the producer gracefully
|
||||
ctxSd, ctxSdCancel := context.WithTimeout(context.Background(), 5)
|
||||
|
|
Loading…
Reference in New Issue