Iris فریم ورک میں شکستہ بندی کی حمایت ہوتی ہے۔ واقعی کاروباری مواقع میں، جب ہم ویب ایپلیکیشن کو دوبارہ چالو یا بند کرنا چاہتے ہیں، Go پروسیس کو بریک کرنے پر بغیر کسی چینل کو دکھائی آسانی سے کسی کاروباری پروسس کو مکمل نہیں ہونے دینے کا سبب بن سکتا ہے۔ بہترین تجاویز میں نئے درخواستوں کو قبول کرنا بند کر دیں، جاری درخواستوں کو تکمیل ہونے دیں، اور پھر Go پروسیس بند کریں۔

آپ کئی طریقوں سے شکستہ بندی یا دوبارہ چلانا کر سکتے ہیں۔ آپ اس مقصد کے لئے حاصل کردہ تیسری شخص کے پیکیج کا استعمال کر سکتے ہیں، یا آپ یہ app.Shutdown(context.Context) میتھڈ کا استعمال کر سکتے ہیں۔

بند کرنے کے لیے CTRL/CMD+C ایونٹ رجسٹر کرنے کے لیے iris.RegisterOnInterrupt استعمال کریں:

idleConnsClosed := make(chan struct{})
iris.RegisterOnInterrupt(func() {
    timeout := 10 * time.Second
    ctx, cancel := stdContext.WithTimeout(stdContext.Background(), timeout)
    defer cancel()
    // تمام ہوسٹ بند کریں۔
    app.Shutdown(ctx)
    close(idleConnsClosed)
})

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