Iris çerçevesi zarif kapatmayı destekler. Gerçek iş senaryolarında, web uygulamasını yeniden başlatmak veya kapatmak istediğimizde, Go işlemini doğrudan kapatmak, iş süreçlerinin tamamlanmadan yarıda kesilmesine neden olarak iş istisnalarına yol açabilir. Daha iyi bir yaklaşım, yeni istekleri kabul etmeyi durdurmak, devam eden isteklerin işlenmesini tamamlamaya izin vermek ve ardından Go işlemini sonlandırmaktır.

Zarif kapatmayı veya yeniden başlatmayı gerçekleştirmek için birkaç yöntem kullanabilirsiniz. Bunun için özel olarak geliştirilmiş üçüncü taraf paketleri de kullanabilirsiniz veya app.Shutdown(context.Context) yöntemini kullanabilirsiniz.

CTRL/CMD+C etkinliğini iris.RegisterOnInterrupt kullanarak kaydedin:

idleConnsClosed := make(chan struct{})
iris.RegisterOnInterrupt(func() {
    timeout := 10 * time.Second
    ctx, cancel := stdContext.WithTimeout(stdContext.Background(), timeout)
    defer cancel()
    // tüm ana bilgisayarları kapat.
    app.Shutdown(ctx)
    close(idleConnsClosed)
})

// [...]
app.Listen(":8080", iris.WithoutInterruptHandler, iris.WithoutServerError(iris.ErrServerClosed))
<-idleConnsClosed