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ý
- Kiểm tra mã trạng thái HTTP 429
- Đọc giá trị
x-ogw-ratelimit-reset
từ header - Chờ trong khoảng thời gian được chỉ định
- Thử lại yêu cầu
- 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ức | Mô 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 |
---|---|---|---|---|
1 | API có giới hạn 10 lần/phút/ứng dụng/tenant | 10 lần/phút | 10 lần/phút | 10 lần/phút |
2 | API có giới hạn 20 lần/phút/ứng dụng/tenant | 20 lần/phút | 20 lần/phút | 20 lần/phút |
3 | API có giới hạn 100 lần/phút/ứng dụng/tenant | 100 lần/phút | 100 lần/phút | 100 lần/phút |
4 | API có giới hạn 1000 lần/phút và 50 lần/giây/ứng dụng/tenant | 1000 lần/phút & 50 lần/giây | 1000 lần/phút & 50 lần/giây | 1000 lần/phút & 50 lần/giây |
5 | API có giới hạn 1 lần/giây/ứng dụng/tenant | 1 lần/giây | 1 lần/giây | 1 lần/giây |
6 | API có giới hạn 5 lần/giây/ứng dụng/tenant | 5 lần/giây | 5 lần/giây | 5 lần/giây |
7 | API có giới hạn 10 lần/giây/ứng dụng/tenant | 10 lần/giây | 10 lần/giây | 10 lần/giây |
8 | API có giới hạn 20 lần/giây/ứng dụng/tenant | 20 lần/giây | 20 lần/giây | 20 lần/giây |
9 | API có giới hạn 50 lần/giây/ứng dụng/tenant | 50 lần/giây | 50 lần/giây | 50 lần/giây |
10 | API có giới hạn 50 lần/giây/ứng dụng/tenant | 50 lần/giây | 100 lần/giây | 50 lần/giây |
11 | API có giới hạn 100 lần/giây/ứng dụng/tenant | 100 lần/giây | 100 lần/giây | 100 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ể:
- 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.
- 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.
- 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ả.