Hướng dẫn về Giới hạn Tần suất (Rate Limits) trong Lark Open Platform

1. Giới thiệu

Lark Open Platform áp dụng các chiến lược kiểm soát tần suất khác nhau cho các API của mình để đảm bảo sự ổn định của hệ thống và cung cấp trải nghiệm phát triển tối ưu cho các nhà phát triển. Bài viết này sẽ giải thích về giới hạn tần suất và cách xử lý chúng trong ứng dụng của bạn.

2. Hiểu về Giới hạn Tần suất

Giới hạn tần suất được áp dụng trên cơ sở:

  • Từng API
  • Từng ứng dụng
  • Từng tenant (tổ chức)

Các mức giới hạn tần suất có thể khác nhau tùy thuộc vào loại ứng dụng (tùy chỉnh hoặc cửa hàng) và gói dịch vụ của tổ chức.

3. Phản hồi khi vượt quá Giới hạn

Khi vượt quá giới hạn, Lark sẽ trả về mã trạng thái HTTP 429 với thông tin bổ sung trong header phản hồi:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
x-ogw-ratelimit-limit: 100 // Giới hạn trong khoảng thời gian, đơn vị: giây
x-ogw-ratelimit-reset: 52 // Thời gian chờ để reset giới hạn, đơn vị: giây
{
    "code": 99991400,
    "msg": "request trigger frequency limit"
}

4. Xử lý Giới hạn Tần suất

4.1 Thuật toán xử lý

  1. Kiểm tra mã trạng thái HTTP 429
  2. Đọc giá trị x-ogw-ratelimit-reset từ header
  3. Chờ trong khoảng thời gian được chỉ định
  4. Thử lại yêu cầu
  5. Nếu vẫn nhận được lỗi 429, lặp lại từ bước 2

4.2 Ví dụ code Python

import requests
import time

def call_api_with_rate_limit_handling(url, headers, data):
    while True:
        response = requests.post(url, headers=headers, json=data)
        if response.status_code != 429:
            return response

        reset_time = int(response.headers.get('x-ogw-ratelimit-reset', 60))
        print(f"Rate limit exceeded. Waiting for {reset_time} seconds.")
        time.sleep(reset_time)

# Sử dụng hàm
url = "https://open.larksuite.com/open-apis/example/v1/api"
headers = {
    "Authorization": "Bearer YOUR_ACCESS_TOKEN",
    "Content-Type": "application/json"
}
data = {"key": "value"}

response = call_api_with_rate_limit_handling(url, headers, data)
print(response.json())

5. Mức Giới hạn Tần suất

Lark Open Platform có nhiều mức giới hạn tần suất khác nhau dựa trên loại ứng dụng và gói dịch vụ. Dưới đây là bảng chi tiết các mức giới hạn:

MứcMô tảGiới hạn Ứng dụng Tùy chỉnh (Gói Cơ bản)Giới hạn Ứng dụng Tùy chỉnh (Gói Doanh nghiệp)Giới hạn Ứng dụng Cửa hàng
1API có giới hạn 10 lần/phút/ứng dụng/tenant10 lần/phút10 lần/phút10 lần/phút
2API có giới hạn 20 lần/phút/ứng dụng/tenant20 lần/phút20 lần/phút20 lần/phút
3API có giới hạn 100 lần/phút/ứng dụng/tenant100 lần/phút100 lần/phút100 lần/phút
4API có giới hạn 1000 lần/phút và 50 lần/giây/ứng dụng/tenant1000 lần/phút & 50 lần/giây1000 lần/phút & 50 lần/giây1000 lần/phút & 50 lần/giây
5API có giới hạn 1 lần/giây/ứng dụng/tenant1 lần/giây1 lần/giây1 lần/giây
6API có giới hạn 5 lần/giây/ứng dụng/tenant5 lần/giây5 lần/giây5 lần/giây
7API có giới hạn 10 lần/giây/ứng dụng/tenant10 lần/giây10 lần/giây10 lần/giây
8API có giới hạn 20 lần/giây/ứng dụng/tenant20 lần/giây20 lần/giây20 lần/giây
9API có giới hạn 50 lần/giây/ứng dụng/tenant50 lần/giây50 lần/giây50 lần/giây
10API có giới hạn 50 lần/giây/ứng dụng/tenant50 lần/giây100 lần/giây50 lần/giây
11API có giới hạn 100 lần/giây/ứng dụng/tenant100 lần/giây100 lần/giây100 lần/giây

Lưu ý: Giá trị giới hạn có thể thay đổi. Hãy kiểm tra tài liệu mới nhất của Lark Open Platform để biết thông tin cập nhật.

6. Cải thiện Giới hạn Tần suất

Hiện tại, Lark Open Platform không cung cấp tính năng tự điều chỉnh giới hạn tần suất. Tuy nhiên, bạn có thể:

  1. Liên hệ với CSM (Customer Success Manager) để yêu cầu tăng giới hạn tạm thời cho các trường hợp đặc biệt như di chuyển dữ liệu hoặc sự kiện quy mô lớn.
  2. Tối ưu hóa logic ứng dụng để giảm số lượng cuộc gọi API không cần thiết.
  3. Sử dụng caching để giảm tải cho API.

7. Lưu ý Đặc biệt

  • Bot tùy chỉnh có giới hạn riêng: 100 lần/phút và 5 lần/giây.
  • Một số API có chiến lược giới hạn tần suất đặc biệt. Trong trường hợp này, hãy liên hệ với bộ phận hỗ trợ kỹ thuật để biết thêm chi tiết.
  • Tính năng kiểm soát tần suất hiện không có sẵn cho các dịch vụ Message, Group và Base.

8. Kết luận

Hiểu và xử lý đúng các giới hạn tần suất là rất quan trọng khi phát triển ứng dụng với Lark Open Platform. Bằng cách tuân thủ các giới hạn này và triển khai các chiến lược xử lý phù hợp, bạn có thể đảm bảo ứng dụng của mình hoạt động một cách đáng tin cậy và hiệu quả.

Lên đầu trang