API Google Trang tính là một dịch vụ dùng chung và chúng tôi áp dụng hạn mức và giới hạn để bảo vệ hiệu suất tổng thể của hệ thống Google Workspace cho tất cả người dùng.
Hạn mức
Mặc dù API Trang tính không có giới hạn cứng về kích thước cho một yêu cầu API, nhưng người dùng có thể gặp phải các giới hạn từ nhiều thành phần xử lý không do Google Trang tính kiểm soát. Để tăng tốc các yêu cầu, bạn nên sử dụng tải trọng tối đa là 2 MB.
API Trang tính có hạn mức mỗi phút và hạn mức này sẽ được nạp lại mỗi phút.
Ví dụ: có giới hạn 300 yêu cầu đọc mỗi phút cho mỗi dự án. Nếu ứng dụng của bạn gửi 350 yêu cầu trong một phút, thì 50 yêu cầu bổ sung sẽ vượt quá hạn mức và tạo ra phản hồi mã trạng thái HTTP 429: Too many requests. Nếu
điều này xảy ra, bạn nên sử dụng thuật toán thời gian đợi luỹ thừa.
Sau 1 phút, bạn có thể thực thi lại các yêu cầu.
Bảng sau đây trình bày chi tiết về giới hạn yêu cầu:
| Hạn mức | |||||
|---|---|---|---|---|---|
| Yêu cầu đọc |
|
||||
| Yêu cầu ghi |
|
||||
Để biết thông tin chi tiết về giới hạn tệp, hãy xem bài viết Các tệp bạn có thể lưu trữ trong Google Drive.
Hành vi và giới hạn
Khi bạn làm việc với ((sheets_api_short)), hãy lưu ý hành vi và các giới hạn sau đây ảnh hưởng đến hạn mức của bạn:
Yêu cầu đọc là các lệnh gọi đến bất kỳ phương thức nào truy xuất dữ liệu từ bảng tính, chẳng hạn như
gethoặcsearch. Yêu cầu ghi là các lệnh gọi đến bất kỳ phương thức nào thay đổi bảng tính, chẳng hạn nhưupdate,clearhoặccopyTo.Người dùng có thể gửi nhiều yêu cầu cùng lúc, miễn là các yêu cầu đó nằm trong giới hạn hạn mức. Mỗi yêu cầu hàng loạt, bao gồm cả mọi yêu cầu phụ, được tính là một yêu cầu API theo giới hạn sử dụng của bạn.
Tất cả các yêu cầu Sheets đều được áp dụng một cách nguyên tử. Tức là nếu bất kỳ yêu cầu nào không hợp lệ thì toàn bộ quá trình cập nhật sẽ không thành công và không có thay đổi nào (có khả năng phụ thuộc) được áp dụng.
Có giới hạn thời gian tối đa để xử lý một yêu cầu API. Khi Sheets xử lý một yêu cầu trong hơn 180 giây, yêu cầu đó sẽ trả về lỗi hết thời gian chờ.
Miễn là bạn duy trì trong hạn mức mỗi phút, thì không có giới hạn về số lượng yêu cầu mà bạn có thể thực hiện mỗi ngày.
Khắc phục lỗi hạn mức dựa trên thời gian
Đối với tất cả các lỗi dựa trên thời gian (tối đa N yêu cầu trong X phút), bạn nên để mã của mình nắm bắt ngoại lệ và sử dụng thuật toán thời gian đợi luỹ thừa bị cắt ngắn để đảm bảo rằng thiết bị của bạn không tạo ra tải quá mức.
Thuật toán thời gian đợi luỹ thừa là một chiến lược xử lý lỗi chuẩn cho các ứng dụng mạng. Thuật toán thời gian đợi luỹ thừa thử lại các yêu cầu bằng cách tăng thời gian đợi theo cấp số nhân giữa các yêu cầu, tối đa là thời gian đợi luỹ thừa tối đa. Nếu các yêu cầu vẫn không thành công, thì điều quan trọng là độ trễ giữa các yêu cầu sẽ tăng theo thời gian cho đến khi yêu cầu thành công.
Thuật toán mẫu
Thuật toán thời gian đợi luỹ thừa thử lại các yêu cầu theo cấp số nhân, tăng thời gian đợi giữa các lần thử lại lên đến thời gian đợi luỹ thừa tối đa. Ví dụ:
- Đưa ra yêu cầu đến API Google Trang tính.
- Nếu yêu cầu không thành công, hãy đợi 1 +
random_number_millisecondsrồi thử lại yêu cầu. - Nếu yêu cầu không thành công, hãy đợi 2 +
random_number_millisecondsrồi thử lại yêu cầu. - Nếu yêu cầu không thành công, hãy đợi 4 +
random_number_millisecondsrồi thử lại yêu cầu. - Cứ như vậy, cho đến thời gian
maximum_backoff. - Tiếp tục đợi và thử lại cho đến một số lần thử lại tối đa, nhưng không tăng thời gian chờ giữa các lần thử lại.
trong đó:
- Thời gian đợi là
min(((2^n)+random_number_milliseconds), maximum_backoff), vớinđược tăng thêm 1 cho mỗi lần lặp (yêu cầu). random_number_millisecondslà một số mili giây ngẫu nhiên nhỏ hơn hoặc bằng 1.000. Điều này giúp tránh các trường hợp nhiều ứng dụng được đồng bộ hoá bởi một số tình huống và tất cả đều thử lại cùng một lúc, gửi yêu cầu theo các đợt đồng bộ hoá. Giá trị củarandom_number_millisecondsđược tính toán lại sau mỗi yêu cầu thử lại.maximum_backoffthường là 32 hoặc 64 giây. Giá trị thích hợp phụ thuộc vào trường hợp sử dụng.
Ứng dụng có thể tiếp tục thử lại sau khi đạt đến thời gian maximum_backoff.
Các lần thử lại sau thời điểm này không cần tiếp tục tăng thời gian đợi luỹ thừa. Ví
dụ: nếu một ứng dụng sử dụng thời gian maximum_backoff là 64 giây, thì sau khi đạt đến
giá trị này, ứng dụng có thể thử lại sau mỗi 64 giây. Tại một thời điểm nào đó,
bạn nên ngăn ứng dụng thử lại vô thời hạn.
Thời gian đợi giữa các lần thử lại và số lần thử lại phụ thuộc vào trường hợp sử dụng và điều kiện mạng của bạn.
Giá
Bạn có thể sử dụng API Google Trang tính mà không phải trả thêm phí. Việc vượt quá giới hạn yêu cầu hạn mức không phát sinh thêm phí và tài khoản của bạn không bị tính phí.
Yêu cầu tăng hạn mức
Tuỳ thuộc vào mức sử dụng tài nguyên của dự án, bạn có thể muốn yêu cầu điều chỉnh hạn mức. Các lệnh gọi API của tài khoản dịch vụ được coi là sử dụng một tài khoản duy nhất. Việc đăng ký hạn mức đã điều chỉnh không đảm bảo được phê duyệt. Các yêu cầu điều chỉnh hạn mức làm tăng đáng kể giá trị hạn mức có thể mất nhiều thời gian hơn để được phê duyệt.
Không phải dự án nào cũng có cùng hạn mức. Khi bạn sử dụng Google Cloud ngày càng nhiều theo thời gian, giá trị hạn mức có thể cần tăng lên. Nếu dự kiến mức sử dụng sẽ tăng đáng kể trong tương lai, bạn có thể chủ động yêu cầu điều chỉnh hạn mức trên trang Hạn mức trong bảng điều khiển Google Cloud.
Để tìm hiểu thêm, hãy xem các tài nguyên sau:
- Giới thiệu về tính năng điều chỉnh hạn mức
- Xem hạn mức sử dụng và giới hạn hiện tại
- Yêu cầu tăng giới hạn hạn mức