العودة إلى الدورة

الإيقاف اللطيف: التنظيف عند الخروج

لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)

لا تقتل العملية فجأة

عندما تتوقف خدمة مصغرة (مثلاً أثناء النشر)، يجب أن تنهي الطلبات الجارية قبل الخروج.

باستخدام 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) // التوقف عن استقبال طلبات جديدة وإنهاء القديمة