Không đáng tin cậy, backoff, phong toả và timeouts (tiếp tục)
Tất nhiên, từ bỏ có ý nghĩa chỉ nếu chương trình của bạn đang cố thực hiện một vài nhiệm vụ
ngắn và cần sinh đầu ra hay trả về một vài loại kết quả tới người dùng. Nếu bạn đang viết một
chương trình daemon cái chạy cả ngày – như, giả sử một weather icon trên góc màn hình cái hiển
thị nhiệt độ và dự báo lấy từ một dịch vụ UDP ở xa – thì nó là tốt để có code cái giữ thử lại
mãi mãi. Sau tất cả, một máy desktop hay laptop có thể rời mạng trong một khoảng thời gian dài,
và code của bạn có thể phải chờ kiên nhẫn trong hàng giờ hay hàng ngày cho đến khi server dự báo
có thể được liên hệ lại lần nữa.
Nếu bạn đang viết daemon code cái thử lại tất cả ngày, thì không tuân theo một exponential backoff
nghiêm ngặt, hay bạn sẽ sớm tăng hoãn lên tới giá trị như 2 giờ, và sau đó bạn có thể sẽ bỏ lỡ toàn bộ
khoảng thời gian nửa giờ suốt đó chủ laptop ngồi xuống một coffee shop và bạn có thể thực sự đi vào
mạng. Thay vào đó, chọn một vài hoãn tối đa – như, giả sử 5 phút – và một khi exponential backoff
đã đi đến khoảng thời gian đó, giữ nó ở đó để rằng bạn luôn được đảm bảo để thử một cập nhật một khi người
dùng đã ở trên mạng trong 5 phút sau thời gian dài mất kết nối.
Nếu hệ điều hành của bạn để quá trình của bạn được tín hiệu cho các sự kiện như mạng đi tới quay trở lại
hoạt động, thì bạn sẽ có thể làm tốt hơn nhiều chơi với timers và đoán về khi nào mạng có thể quay trở lại.