Study
Fiber

Graceful Shutdown

Penjelasan

Sama seperti Echo, mematikan server Fiber LANGSUNG bisa memutus request yang sedang diproses — Fiber menyediakan app.ShutdownWithTimeout(durasi) yang menunggu request aktif selesai (sampai batas waktu tertentu) sebelum server benar-benar berhenti, dipicu setelah menangkap sinyal terminasi OS.

Contoh Konsep

go func() {
	if err := app.Listen(":3000"); err != nil {
		log.Panic(err)
	}
}()

quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit // tunggu sinyal Ctrl+C atau terminasi lain

if err := app.ShutdownWithTimeout(10 * time.Second); err != nil {
	log.Fatal(err)
}

Praktikum

Jelaskan (sebagai catatan) apa yang terjadi kalau server Fiber dimatikan TANPA graceful shutdown saat sedang memproses 100 request bersamaan, dibandingkan kalau memakai ShutdownWithTimeout dengan durasi 10 detik.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

app.ShutdownWithTimeout() di Fiber JAUH lebih ringkas dibanding pola context.WithTimeout() + e.Shutdown(ctx) di Echo — konsisten lagi dengan filosofi Fiber yang mengutamakan API praktis, walau di balik layar tujuannya sama persis: memberi waktu request aktif selesai sebelum server mati total.