[TOC]
- Graceful shutdown or restart
Graceful shutdown or restart
There are a few approaches you can use to perform a graceful shutdown or restart. You can make use of third-party packages specifically built for that, or you can use the app.Shutdown(context.Context) method. Examples can be found here.
Register an event on CTRL/CMD+C using iris.RegisterOnInterrupt:
idleConnsClosed := make(chan struct{})iris.RegisterOnInterrupt(func() { timeout := 10 * time.Second ctx, cancel := stdContext.WithTimeout(stdContext.Background(), timeout) defer cancel() // close all hosts. app.Shutdown(ctx) close(idleConnsClosed)})// [...]app.Listen(":8080", iris.WithoutInterruptHandler, iris.WithoutServerError(iris.ErrServerClosed))<-idleConnsClosed
