Iris ফ্রেমওয়ার্কটি গ্রেসফুল শাটডাউনটি সাপোর্ট করে। বাসায়িক ব্যবসা পরিস্থিতিতে, যখন আমরা ওয়েব অ্যাপ্লিকেশনটি বন্ধ বা পুনরারম্ভ করতে চাই, তখন Go প্রসেসকে নির্দিষ্টভাবে বন্ধ করা সরলভাবে কিছু ব্যবসায়িক প্রক্রিয়াগুলি অধূর অবস্থায় বন্ধ করতে পারে, যা ব্যবসায়িক ব্যাপ্তি সৃষ্টি করে। এটির বর্তমান সিদ্ধান্ত হ'ল নতুন অনুরোধ গ্রহণ করা বন্ধ করা, চলমান অনুরোধগুলি প্রসেস শেষ হওয়ার পরে এবং তারপরে Go প্রসেসটি বাহির হতে পারে।
আপনি এই গ্রেসফুল শাটডাউন বা পুনরারম্ভ করার জন্য কয়েকটি পদ্ধতি ব্যবহার করতে পারেন। আপনি এই উদ্দেশ্যে নির্মিত তৃতীয় পক্ষের প্যাকেজগুলি বা app.Shutdown(context.Context) মেথড ব্যবহার করতে পারেন।
iris.RegisterOnInterrupt ব্যবহার করে CTRL/CMD+C ইভেন্ট নিবন্ধিত করুন:
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