Giới hạn tần suất Discord: Vì sao bot bị chậm lại
Giới hạn tần suất là mức trần của Discord về số yêu cầu mà một bot hoặc người dùng có thể gửi trong một khoảng thời gian ngắn. Khi bot vượt mức này, Discord trả về lỗi HTTP 429 cùng thời gian chờ, và bot phải tạm dừng trước khi thử lại.
Giới hạn được áp dụng thế nào
Mọi hành động của bot đều là một yêu cầu gửi đến API của Discord: gửi tin nhắn, thêm vai trò, chỉnh sửa kênh. Discord đếm các yêu cầu theo từng nhóm, thường theo từng route và đôi khi theo từng máy chủ hoặc kênh. Ngoài ra còn có một giới hạn chung khoảng 50 yêu cầu mỗi giây cho mỗi bot.
Phản hồi chứa các header cho biết còn bao nhiêu yêu cầu và khi nào nhóm được đặt lại. Một bot được viết tốt sẽ đọc các thông tin này và chậm lại trước khi bị chặn. Nếu vẫn vượt mức, phản hồi 429 mang một giá trị Retry-After cho biết cần chờ bao nhiêu giây.
Vì sao bạn nhận thấy chúng
- Các thao tác hàng loạt như xóa nhiều tin nhắn hoặc đổi nhiều vai trò được cố tình làm chậm lại.
- Đổi tên hoặc chủ đề của một kênh nhiều lần trong thời gian ngắn bị giới hạn theo từng kênh.
- Thêm nhiều biểu cảm hoặc gửi các đợt tin nhắn dồn dập sẽ kích hoạt những khoảng tạm dừng ngắn.
Với thành viên, điều này trông như một bot phản hồi chậm, chứ không phải lỗi. Đó là hệ thống đang làm đúng việc của nó.
Phiên bản nghiêm trọng: cấm tạm thời
Nếu một ứng dụng gửi quá nhiều yêu cầu lỗi, chẳng hạn hàng nghìn phản hồi 401, 403 hoặc 429 trong mười phút, Discord có thể chặn địa chỉ IP của nó một thời gian ở tầng Cloudflare. Một bot chạy trên máy dùng chung khi đó có thể lỗi dù máy chủ của bạn không có vấn đề gì. Chờ là cách khắc phục duy nhất.
Đừng bao giờ tìm cách vượt qua giới hạn tần suất bằng tài khoản phụ hoặc script. Chúng tồn tại để bảo vệ nền tảng, và lách qua chúng có nguy cơ bị cấm.
Bạn có thể làm gì với tư cách chủ máy chủ
- Chia nhỏ các việc lớn thay vì chạy tất cả cùng lúc.
- Tránh đổi tên kênh theo lịch hẹn giờ.
- Ưu tiên các bot xếp hàng yêu cầu và tôn trọng giới hạn.
Giới hạn tần suất và Noxyr
Nhật ký máy chủ của Noxyr được đăng tối đa vài giây một lần cho mỗi kênh và mười mục mỗi lần, nên một đợt raid hay một đợt dọn dẹp lớn sẽ không làm ngập kênh nhật ký, như mô tả trong tài liệu nhật ký máy chủ. Việc gửi tin nhắn trò chuyện trực tiếp của chính Noxyr cũng bị giới hạn để ngăn tràn tin. Bot tùy chỉnh có một quy tắc liên quan: mỗi lần chuyển sang một máy chủ mới là một lần đăng nhập Discord mới, nên có khoảng chờ năm phút giữa các lần chuyển, xem lưu trữ bot tùy chỉnh.
Giới hạn tần suất cũng buộc các bot lớn phải chia ra nhiều kết nối, xem sharding. Nếu bot của bạn có vẻ bị treo, hãy kiểm tra trang trạng thái và ping trước.
Câu hỏi thường gặp
HTTP 429 trên Discord nghĩa là gì?
Quá nhiều yêu cầu. Discord báo bot chờ đúng thời gian trong giá trị Retry-After rồi mới thử lại.
Giới hạn tần suất có phải là cấm không?
Không. Đó là một khoảng tạm dừng ngắn. Chỉ lạm dụng lặp lại mới có thể dẫn đến một khối tạm thời dài hơn.
Vì sao bot của tôi phản hồi chậm khi dọn dẹp lớn?
Các thao tác hàng loạt bị Discord giới hạn tần suất, nên bot phải chia nhỏ chúng ra.