لا تقتل العملية فجأة
عندما تتوقف خدمة مصغرة (مثلاً أثناء النشر)، يجب أن تنهي الطلبات الجارية قبل الخروج.
باستخدام os/signal:
go stop := make(chan os.Signal, 1) signal.Notify(stop, os.Interrupt)
<-stop // انتظار إشارة Ctrl+C
ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) server.Shutdown(ctx) // التوقف عن استقبال طلبات جديدة وإنهاء القديمة