Penghentian yang tertib
Glasswall Halo menerapkan graceful shutdown untuk memungkinkan layanan menyelesaikan permintaan yang sedang diproses sambil menolak permintaan baru selama proses penghentian.
Ini memastikan bahwa pekerjaan yang belum selesai ditangani dengan benar dan mengurangi risiko kehilangan data atau permintaan yang hanya diproses sebagian.
API Sinkron dan API Asinkron
API Glasswall Halo menggunakan mekanisme graceful shutdown ASP.NET Core. Informasi lebih lanjut tersedia dalam dokumentasi Microsoft untuk batas waktu shutdown Kestrel.
Secara default, batas waktu shutdown diatur ke 60 detik. Nilai ini menentukan berapa lama server akan menunggu setelah shutdown dimulai sebelum koneksi yang masih terbuka ditutup secara paksa.
Selama periode ini:
- Kestrel menunggu pemrosesan permintaan aktif selesai.
- Tidak ada koneksi atau permintaan baru yang diterima.
Beberapa tugas latar belakang mungkin tetap berjalan setelah batas waktu shutdown berlalu. Perilaku ini dijelaskan dalam dokumentasi Microsoft untuk penanganan penghentian hosted service.
Bahkan setelah pembatalan diminta, tugas tidak ditinggalkan. Host menunggu semua tugas selesai sebelum penghentian akhir.
Layanan agregator laporan dan Engine
Layanan Report Aggregator dan Engine diimplementasikan sebagai hosted service, sehingga logika kustom dapat dijalankan selama startup dan shutdown layanan.
Detail lebih lanjut tersedia dalam dokumentasi Microsoft untuk IHostedService.
Saat shutdown dimulai:
- Kedua layanan memungkinkan permintaan yang sedang diproses untuk selesai.
- Batas waktu shutdown default sebesar 5 detik diberlakukan.
- Jika batas waktu terlampaui, layanan dihentikan secara paksa.
Desain ini memastikan perilaku shutdown yang dapat diprediksi sambil menyeimbangkan keandalan dan kecepatan shutdown.