Bỏ qua để đến nội dung

Thử lại và phát lại

~3 phút đọc

Khi endpoint của bạn không trả 2xx trong 10 giây, Dòng Tiền Pro không bỏ sự kiện: nó thử lại theo lịch cố định, tạm ngưng endpoint nếu lỗi kéo dài và giữ các sự kiện chờ để giao lại khi bạn sửa xong. Trang này mô tả từng bước.

Mỗi sự kiện được giao tối đa 8 lần. Khoảng chờ tính từ lần thất bại trước:

Lần thửChờ trước lần này
1Giao ngay
25 giây
35 phút
430 phút
52 giờ
65 giờ
710 giờ
810 giờ

Từ lần 2, khoảng chờ có thêm độ trễ ngẫu nhiên khoảng ±10% để tránh dồn đợt. Cộng tất cả khoảng chờ, lần thử cuối rơi vào khoảng 27 giờ sau lần đầu, chưa kể thời gian chờ phản hồi.

Một lần giao được tính là thất bại khi phản hồi không phải 2xx (kể cả 3xx, 4xx, 5xx), khi hết 10 giây chờ, hoặc khi không kết nối được. Nếu phản hồi lỗi có header Retry-After, Dòng Tiền Pro dùng giá trị đó thay cho khoảng chờ trong lịch, tối đa 24 giờ.

Trả 410 Gone là cách báo rằng endpoint không còn nữa: endpoint bị tắt ngay và sự kiện không được thử lại.

Sau lần thứ 8 vẫn thất bại, lần giao đó chuyển sang trạng thái cạn lượt thử. Bạn phát lại nó thủ công như bên dưới.

Sau 5 lần thất bại liên tiếp, endpoint chuyển sang tạm ngưng. Trong thời gian này:

  • Sự kiện mới vẫn được nhận và giữ ở trạng thái chờ, không bị mất. Mỗi endpoint giữ tối đa 10.000 sự kiện hoặc trong 14 ngày.
  • Bạn nhận thông báo để biết endpoint đã bị tạm ngưng.
  • Khi bạn bấm Bật lại ở trang endpoint, các sự kiện chờ được giao tuần tự theo thứ tự tạo, mỗi lần một sự kiện; nếu endpoint lại lỗi, việc xả dừng lại.
  • Quá giới hạn 10.000 sự kiện hoặc 14 ngày, các sự kiện còn lại bị chuyển vào hàng chờ xử lý lỗi và endpoint bị tắt.

Ở trang Webhooks, mở một lần giao trong nhật ký rồi bấm Phát lại, hoặc dùng Phát lại các lỗi để xử lý hàng loạt. Hộp thoại chia các lần giao lỗi thành ba nhóm:

NhómNghĩa
ChặnEndpoint đang tạm ngưng; phải bật lại endpoint trước.
ChờĐang chờ lần thử lại tự động.
Sẵn sàngCó thể phát lại ngay.

Phát lại giữ nguyên webhook-id và thân, nhưng ký lại với webhook-timestamp mới, nên chữ ký vẫn qua được dung sai 5 phút. Vì webhook-id không đổi, bộ khử trùng của bạn bỏ qua bản phát lại nếu đã xử lý xong thông điệp đó. Điều này đúng mong muốn, miễn là bạn chỉ đánh dấu một webhook-id là đã xử lý sau khi xử lý thành công.

Mỗi lần phát lại mở một vòng thử mới trong nhật ký của lần giao đó: các lần thử trước vẫn nằm nguyên, các lần thử của vòng mới được đánh số lại từ 1 (tối đa 8, theo cùng lịch thử lại). Một lần giao đang chờ gửi hoặc đang gửi chưa thể phát lại; yêu cầu nhận lỗi 409.

Phát lại bị giới hạn 30 yêu cầu mỗi phút cho mỗi tổ chức. Nhật ký giao lưu 30 ngày; nội dung sự kiện lưu 90 ngày, nên không thể phát lại sự kiện cũ hơn 90 ngày.