Hạn mức sử dụng

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
Mỗi phút cho mỗi dự án 300
Mỗi phút cho mỗi người dùng trên mỗi dự án 60
Yêu cầu ghi
Mỗi phút cho mỗi dự án 300
Mỗi phút cho mỗi người dùng trên mỗi dự án 60

Để 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ư get hoặc search. 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, clear hoặc copyTo.

  • 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ụ:

  1. Đưa ra yêu cầu đến API Google Trang tính.
  2. Nếu yêu cầu không thành công, hãy đợi 1 + random_number_milliseconds rồi thử lại yêu cầu.
  3. Nếu yêu cầu không thành công, hãy đợi 2 + random_number_milliseconds rồi thử lại yêu cầu.
  4. Nếu yêu cầu không thành công, hãy đợi 4 + random_number_milliseconds rồi thử lại yêu cầu.
  5. Cứ như vậy, cho đến thời gian maximum_backoff.
  6. 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ới n được tăng thêm 1 cho mỗi lần lặp (yêu cầu).
  • random_number_milliseconds là 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ủa random_number_milliseconds được tính toán lại sau mỗi yêu cầu thử lại.
  • maximum_backoff thườ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: