Lập trình 22/09/2026 7 phút

Deadline và cancellation trong gRPC: huỷ call đúng lúc thay vì treo vô hạn

Một call không có deadline là một quả bom hẹn giờ: nếu server treo, client chờ mãi, tài nguyên cạn dần. Bài này chạy thật: server handler tốn 500ms, client đặt deadline 100ms — call bị huỷ sau đúng 101ms (không phải 500ms), client nhận DeadlineExceeded, và server phát hiện context bị huỷ nên dừng việc ngay thay vì tốn CPU cho kết quả client đã bỏ. Deadline lan truyền toàn chuỗi call qua context.