Skip to content
Last updated

API MoreLogin thực thi các giới hạn tốc độ để đảm bảo mức sử dụng hợp lý và độ ổn định của hệ thống.


Giới hạn

Loại APIGiới hạn tỷ lệCửa sổ
API cục bộ120 yêu cầumỗi phút
API mở120 yêu cầumỗi phút

Phản hồi giới hạn tỷ lệ

Khi bạn vượt quá giới hạn tốc độ, API sẽ trả về:

Trạng thái HTTP: 429 Too Many Requests

{
  "code": 429,
  "msg": "Rate limit exceeded",
  "data": null,
  "requestId": "..."
}

Thực tiễn tốt nhất

1. Triển khai Thử lại với Backoff

import time
import requests

def api_request_with_retry(url, payload, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(url, json=payload)
        if response.status_code == 429:
            wait_time = 2 ** attempt  # 1s, 2s, 4s
            print(f"Rate limited. Retrying in {wait_time}s...")
            time.sleep(wait_time)
            continue
        return response
    raise Exception("Max retries exceeded")

2. Hoạt động hàng loạt

Thay vì thực hiện các lệnh gọi API riêng lẻ, hãy sử dụng điểm cuối hàng loạt khi có sẵn:

# Bad: 100 individual calls
for env_id in env_ids:
    requests.post(f"{BASE}/api/env/start", json={"envId": env_id})

# Good: Use batch endpoints
requests.post(f"{BASE}/api/env/updateGroup/batch", json={
    "envIds": env_ids,
    "groupId": "target-group"
})

3. Phản hồi bộ đệm

Đối với dữ liệu không thay đổi thường xuyên (ví dụ: danh sách múi giờ, danh sách nền tảng), hãy lưu trữ phản hồi cục bộ:

# Cache timezone/language data — it rarely changes
timezone_data = requests.post(f"{BASE}/api/env/advanced/timezone").json()
# Reuse timezone_data for subsequent profile creations

Giám sát việc sử dụng của bạn

Theo dõi tần suất lệnh gọi API của bạn. Nếu bạn liên tục đạt đến giới hạn, hãy cân nhắc:

  • Trải đều các yêu cầu trong từng phút
  • Sử dụng webhooks (sắp ra mắt) thay vì bỏ phiếu
  • Kết hợp nhiều thao tác thành các cuộc gọi hàng loạt