Google Sheets API là một dịch vụ dùng chung và chúng tôi áp dụng hạn mức cũng như 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ù Sheets API không có giới hạn kích thước cố định 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 độ yêu cầu, bạn nên sử dụng tải trọng tối đa là 2 MB.
Sheets API có hạn mức theo phút và hạn mức này sẽ được nạp lại mỗi phút.
Ví dụ: mỗi dự án có giới hạn 300 yêu cầu đọc mỗi phút. 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 hiện lại các yêu cầu.
Bảng sau đây trình bày chi tiết các giới hạn về yêu cầu:
| Hạn mức | |||||
|---|---|---|---|---|---|
| Đọc yêu cầu |
|
||||
| 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 làm việc với ((sheets_api_short)), hãy lưu ý những hành vi và giới hạn sau đây ảnh hưởng đến hạn mức của bạn:
Yêu cầu đọc là lệnh gọi đến bất kỳ phương thức nào truy xuất dữ liệu từ một bảng tính, chẳng hạn như
gethoặcsearch. Yêu cầu ghi là 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 một lúc, miễn là các yêu cầu đó nằm trong 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ụ) đều được tính là một yêu cầu API trong giới hạn sử dụng của bạn.
Tất cả các yêu cầu về Trang tính đều được áp dụng một cách nguyên tử. Tức là nếu có yêu cầu 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ó thể 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 không vượt quá 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.
Giải quyết 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 bắt lỗi và sử dụng thuật toán giảm số lần thử theo hàm mũ để đảm bảo 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ý sai số chuẩn cho các ứng dụng mạng. Thuật toán thời gian đợi luỹ thừa sẽ thử lại các yêu cầu bằng cách tăng thời gian chờ theo cấp số nhân giữa các yêu cầu, tối đa là thời gian đợi. Nếu 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 phải 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 sẽ thử lại các yêu cầu theo cấp số nhân, tăng thời gian chờ giữa các lần thử lại cho đến thời gian đợi tối đa. Ví dụ:
- Gửi 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. - Và cứ như vậy, tối đa
maximum_backofflần. - Tiếp tục đợi và thử lại cho đến khi đạt đến số lần thử lại tối đa, nhưng không tăng khoảng thời gian chờ giữa các lần thử lại.
trong đó:
- Thời gian chờ là
min(((2^n)+random_number_milliseconds), maximum_backoff), vớintă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á theo 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 đợ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ị phù hợp tuỳ 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 tạm ngưng. 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 đó, các ứng dụng sẽ không được phép thử lại vô thời hạn.
Thời gian chờ giữa các lần thử lại và số lần thử lại tuỳ thuộc vào trường hợp sử dụng và điều kiện mạng của bạn.
Giá
Mọi hoạt động sử dụng API Google Trang tính đều được cung cấp miễn phí. Việc vượt quá hạn mức yêu cầu không phát sinh thêm phí và tài khoản của bạn sẽ 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 một tài khoản dịch vụ được coi là đang 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 rằng bạn sẽ đượ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ó hạn mức giống nhau. Khi bạn ngày càng sử dụng Google Cloud, các 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 thời gian tới, 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 Google Cloud Console.
Để tìm hiểu thêm, hãy xem các tài nguyên sau:
- Giới thiệu về việc điều chỉnh hạn mức
- Xem hạn mức và mức sử dụng hạn mức hiện tại
- Yêu cầu tăng hạn mức sử dụng