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.
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.