מגבלות שימוש

Google Drive API הוא שירות משותף, ולכן אנחנו מחילים מכסות והגבלות כדי לוודא שהשימוש בו הוגן לכל המשתמשים וכדי להגן על הביצועים הכוללים של מערכת Google Workspace.

התראות שנשלחות לכתובת שצוינה בפתיחת ערוץ התראות לא נכללות במכסות שלכם. עם זאת, קריאות לשיטות changes.watch, channels.stop ו-files.watch נכללות במכסה.

אם תחרגו ממכסה, תקבלו קוד סטטוס HTTP של 403: User rate limit exceeded. גם בדיקות נוספות של הגבלת הקצב של יצירת הבקשות בקצה העורפי של Drive עשויות ליצור תגובה של 429: Too many requests. במקרה כזה, צריך להשתמש באלגוריתם מעריכי מושהה ולנסות שוב מאוחר יותר. אין הגבלה על מספר הבקשות שאפשר לשלוח ביום (אם לא תחרגו ממכסות הדקה שמופיעות בהמשך).

בטבלה הבאה מפורטות המגבלות של השאילתות:

מכסות
שאילתות
ל-60 שניות 12,000
ל-60 שניות לכל משתמש 12,000

פתרון שגיאות במכסות מבוססות-זמן

בכל השגיאות שמבוססות על זמן (לכל היותר N בקשות ב-X דקות), מומלץ שהקוד יתפוס את החריגה וישתמש בהשהיה מעריכית קטועה כדי לוודא שהמכשירים לא ייצרו עומס יתר.

השהיה מעריכית היא אסטרטגיה סטנדרטית לטיפול בשגיאות עבור אפליקציות רשת. אלגוריתם מעריכי של השהיה לפני ניסיון חוזר לבצע בקשות על ידי הגדלה אקספוננציאלית של זמני המתנה בין בקשות, עד לזמן השהייה המרבי. אם הבקשות עדיין נדחות, חשוב שמשך הזמן בין הבקשות יתארך עם הזמן עד שהבקשה תאושר.

אלגוריתם לדוגמה

אלגוריתם של השהיה מעריכית מנסה לבצע שוב בקשות באופן אקספוננציאלי. כך, זמן ההמתנה בין ניסיונות חוזרים גדל עד לזמן ההשהייה המקסימלי. לדוגמה:

  1. שליחת בקשה ל-Google Drive API.
  2. אם הבקשה נכשלת, יש להמתין 1 + random_number_milliseconds ולנסות שוב לבצע את הבקשה.
  3. אם הבקשה נכשלה, ממתינים 2 + random_number_milliseconds ומנסים שוב לבצע את הבקשה.
  4. אם הבקשה נכשלת, יש להמתין 4 + random_number_milliseconds ולנסות שוב לבצע את הבקשה.
  5. וכך הלאה, עד פעם אחת (maximum_backoff).
  6. אפשר להמשיך להמתין ולנסות שוב עד למספר המקסימלי של ניסיונות חוזרים, אבל לא כדאי להאריך את תקופת ההמתנה בין הניסיונות החוזרים.

איפה:

  • זמן ההמתנה הוא min(((2^n)+random_number_milliseconds), maximum_backoff), כאשר הערך של n עולה ב-1 לכל איטרציה (בקשה).
  • random_number_milliseconds הוא מספר אקראי של אלפיות השנייה שקטן מ-1,000 או שווה לו. כך ניתן למנוע מקרים שבהם לקוחות רבים מסונכרנים במצבים מסוימים, וכולם מנסים שוב בבת אחת, ושולחים בקשות בפרסומי wave מסונכרנים. הערך של random_number_milliseconds מחושב מחדש אחרי כל בקשה לניסיון חוזר.
  • משך הזמן של maximum_backoff הוא בדרך כלל 32 או 64 שניות. הערך המתאים תלוי בתרחיש לדוגמה.

הלקוח יוכל להמשיך לנסות שוב אחרי שיגיע הזמן ה-maximum_backoff. ניסיונות חוזרים אחרי הנקודה הזו לא צריכים להאריך את זמן ההשהיה. לדוגמה, אם לקוח משתמש בזמן maximum_backoff של 64 שניות, לאחר שהוא מגיע לערך הזה, הלקוח יכול לנסות שוב כל 64 שניות. בשלב כלשהו, ניתן למנוע מלקוחות לנסות שוב ללא הגבלת זמן.

משך ההמתנה בין הניסיונות החוזרים למספר הניסיונות החוזרים תלוי בתרחיש לדוגמה ובתנאי הרשת.

תמחור

כל שימוש ב-Google Drive API זמין ללא עלות נוספת. חריגה מהמגבלות של הבקשות למכסה לא תגרום לחיובים נוספים והחשבון שלך לא יחויב.

איך שולחים בקשה להגדלת מכסה

יכול להיות שתרצו לבקש הגדלה של המכסה, בהתאם לשימוש במשאבים בפרויקט. קריאות ל-API דרך חשבון שירות נחשבות לשימוש בחשבון יחיד. הגשת בקשה להגדלת מכסה לא מבטיחה אישור. אישור של הגדלות מכסות עשוי להימשך זמן רב יותר.

לא לכל הפרויקטים יש את אותן מכסות. ככל שהשימוש ב-Google Cloud הולך וגדל, יכול להיות שתצטרכו להגדיל את המכסות שלכם. אם צפויה עלייה משמעותית בשימוש, אתם יכולים לבקש התאמות של המכסות באופן יזום דרך הדף Quotas במסוף Google Cloud.

מידע נוסף זמין במקורות המידע הבאים: