מגבלות שימוש

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

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

הערה: על שעונים של טפסים יש מגבלות נוספות. מידע נוסף זמין במאמר הגדרה וקבלה של התראות.

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

מכסות
קריאה של הבקשות
ליום לכל פרויקט ללא הגבלה
לדקה לכל פרויקט 975
לדקה למשתמש בכל פרויקט 390
בקשות קריאה יקרות

(משמש לבקשות של forms.responses.list).

ליום לכל פרויקט ללא הגבלה
לדקה לכל פרויקט 450
לדקה למשתמש בכל פרויקט 180
כתיבת בקשות
ליום לכל פרויקט ללא הגבלה
לדקה לכל פרויקט 375
לדקה למשתמש בכל פרויקט 150

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

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

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

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

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

  1. יש לשלוח בקשה ל-Google Forms 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 או שווה לו. כך ניתן להימנע ממקרים שבהם לקוחות רבים מסונכרנים במצבים מסוימים, וכולם מנסים שוב בבת אחת ושולחים בקשות בגלים מסונכרנים. הערך של random_number_milliseconds מחושב מחדש אחרי כל בקשה לניסיון חוזר.
  • משך הזמן של maximum_backoff הוא בדרך כלל 32 או 64 שניות. הערך המתאים תלוי בתרחיש לדוגמה.

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

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

תמחור

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

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

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

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

מידע נוסף זמין במשאבים הבאים: