מזהה אזור
REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
קובץ התצורה queue.yaml משמש ליצירה ולהגדרה של כמעט כל תורי המשימות (push או pull) שבהם האפליקציה משתמשת. כל אפליקציות App Engine מגיעות עם תור דחיפה שהוגדר מראש באופן אוטומטי בשם default. אתם לא יוצרים את התור default בעצמכם, אבל אתם יכולים להוסיף תורים אחרים או לשנות את ההגדרה של התור default באמצעות הקובץ queue.yaml.
כדי להגדיר תורים להעברת הודעות (push), אפשר להשתמש בשיטות queue.yaml או Queue Management מ-Cloud Tasks, אבל לא בשתיהן בו-זמנית. שילוב של שיטת ההעלאה queue.yaml עם שיטות לניהול תור עלול להניב תוצאות בלתי צפויות, ולכן לא מומלץ.
כדי להגדיר תורים של בקשות משיכה, צריך להשתמש בקובץ queue.yaml.
Cloud Tasks לא תומך בתורי משימות מסוג pull.
דוגמה
הדוגמה הבאה היא דוגמה בסיסית להגדרת תור עם שם ולשינוי קצב העיבוד שמוגדר כברירת מחדל:
queue:
- name: my-push-queue
rate: 1/s
בדוגמה המורכבת הבאה של הגדרת queue.yaml אפשר לראות איך מגדירים את מספר הניסיונות להפעלת משימה ואיך משנים את קצב העיבוד שמוגדר כברירת מחדל.
queue:
- name: fooqueue
rate: 1/s
retry_parameters:
task_retry_limit: 7
task_age_limit: 2d
- name: barqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 0
- name: bazqueue
rate: 1/s
retry_parameters:
min_backoff_seconds: 10
max_backoff_seconds: 200
max_doublings: 3
תחביר
קובץ queue.yaml הוא קובץ YAML שההנחיה הראשית שלו היא queue.
ההנחיה הזו מכילה אפס תורים או יותר עם שמות. כל הגדרה של תור יכולה לציין את הרכיבים הבאים:
| רכיב | תיאור |
|---|---|
bucket_size (תורים של הודעות Push) |
זה שינוי אופציונלי. תור משימות משתמש באלגוריתם token bucket כדי לשלוט בקצב הביצוע של המשימות. לכל תור בעל שם יש token bucket שמכיל אסימונים, עד למקסימום שצוין בערך bucket_size. בכל פעם שהאפליקציה מבצעת משימה, אסימון מוסר מהמאגר. ממשיכים לעבד משימות בתור עד שנגמרים האסימונים בדלי של התור. מערכת App Engine ממלאת מחדש את המאגר באסימונים חדשים באופן רציף על סמך הקצב שציינתם לתור. גודל הדלי מגביל את מהירות העיבוד של התור כשיש בו הרבה משימות וקצב העיבוד גבוה. הערך המקסימלי של bucket size הוא 500. כך תוכלו להגדיר קצב גבוה כדי שהעיבוד יתחיל זמן קצר אחרי שהמשימה תתווסף לתור, אבל עדיין להגביל את השימוש במשאבים אם הרבה משימות יתווספו לתור בפרק זמן קצר. אם לא מציינים את bucket_size לתור, ערך ברירת המחדל הוא 5. מומלץ להגדיר ערך גדול יותר, כי גודל ברירת המחדל עשוי להיות קטן מדי עבור תרחישי שימוש רבים. לדוגמה, אפשר לקבוע את גודל הקטגוריה על סמך קצב העיבוד. מידע נוסף על הרכיב הזה זמין בתיאור ההשוואתי של |
max_concurrent_requests (תורים של הודעות Push) |
זה שינוי אופציונלי. הגדרת המספר המקסימלי של משימות שאפשר להריץ בו-זמנית בתור שצוין. הערך הוא מספר שלם. כברירת מחדל, המגבלה היא 1,000 משימות לכל תור. המגבלה המומלצת העליונה היא 5,000 משימות לכל תור. שימו לב: יכול להיות שייקח זמן עד שהתורות יתמלאו אם הן נוצרו לאחרונה או אם הן היו ריקות במשך זמן מה. הגבלת מספר המשימות שרצות בו-זמנית מאפשרת לכם לשלוט טוב יותר בקצב הביצוע של התור, ויכולה למנוע מצב שבו יותר מדי משימות רצות בו-זמנית. היא גם יכולה למנוע התנגשות בנתונים ולהפוך משאבים לזמינים לתורים אחרים או לעיבוד אונליין. מידע נוסף על הרכיב הזה מופיע בתיאור ההשוואתי של |
mode |
זה שינוי אופציונלי.
מזהה את מצב התור. ההגדרה הזו מוגדרת כברירת מחדל לערך |
name |
חובה.
שם התור. זה השם שציינתם כשמתקשרים למספר שם התור יכול להכיל אותיות גדולות וקטנות, מספרים ומקפים. האורך המקסימלי של שם התור הוא 100 תווים.
לכל האפליקציות יש תור דחיפה (push queue) בשם default. בתור הזה מוגדר מראש קצב של 5 משימות בשנייה. שימו לב: תור ברירת המחדל הזה לא מוצג ב- Google Cloud console עד שמשתמשים בו או מגדירים אותו בפעם הראשונה.
אפשר להגדיר את תור ברירת המחדל, כולל שינוי הקצב שמוגדר כברירת מחדל, על ידי הגדרת תור בשם default בקובץ |
rate (תורים של הודעות Push) |
חובה.
התדירות שבה המשימות מעובדות בתור הזה. הערך הוא מספר
שאחריו מופיע לוכסן ויחידת זמן, כאשר היחידה היא
אם המספר הוא מידע נוסף על הרכיב הזה מופיע בתיאור ההשוואתי של |
retry_parameters |
זה שינוי אופציונלי. הגדרת ניסיונות חוזרים למשימות שנכשלו בתורים של הודעות Push. התוספת הזו מאפשרת לציין את המספר המקסימלי של ניסיונות חוזרים למשימות שנכשלו בתור מסוים. אפשר גם להגדיר מגבלת זמן לניסיונות חוזרים ולשלוט במרווח הזמן בין הניסיונות. פרמטרים של ניסיון חוזר יכולים להכיל את רכיבי המשנה הבאים:
|
target (תורים של הודעות Push) |
זה שינוי אופציונלי. מחרוזת שכוללת שם של שירות או גרסה, גרסת קצה קדמי או בק-אנד, שבהם יבוצעו כל המשימות שנוספו לתור הזה. ערך ברירת המחדל הוא מחרוזת ריקה.
המחרוזת מתווספת לפני שם הדומיין של האפליקציה כשיוצרים את בקשת ה-HTTP למשימה. לדוגמה, אם מזהה האפליקציה שלכם הוא אם לא מציינים את היעד, המשימות מופעלות באותה גרסה של האפליקציה שבה הן הוכנסו לתור. לכן, אם הוספתם למשימה תור מגרסת ברירת המחדל של האפליקציה בלי לציין יעד בתור, המשימה תופעל בגרסת ברירת המחדל של האפליקציה. שימו לב: אם גרסת ברירת המחדל של האפליקציה משתנה בין הזמן שבו המשימה מתווספת לתור לבין הזמן שבו היא מופעלת, המשימה תפעל בגרסת ברירת המחדל החדשה. אם אתם משתמשים בשירותים עם קובץ שליחה, יכול להיות שבקשת ה-HTTP של המשימה שלכם תיירט ותנותב מחדש לשירות אחר. |
אפשר לציין את הרכיבים הבאים לכל התורים באפליקציה:
| רכיב | תיאור |
|---|---|
total_storage_limit |
זה שינוי אופציונלי. מחרוזת שמבטלת את מגבלת האחסון שמוגדרת כברירת מחדל, שזמינה לאחסון ב-taskqueue (100M). לדוגמה: total_storage_limit: 1.2G queue: - name: fooqueue המכסה הזו היא חלק ממכסת האחסון הכוללת של האפליקציה (כולל מכסת האחסון של מאגר הנתונים ומאגר ה-Blob). אם לא מציינים סיומת, המספר שציינתם יפורש כבייטים. יש תמיכה בסיומות הבאות:
|
פריסת קובץ תצורת התור
הקובץ queue.yaml צריך להיות בספריית הבסיס או בספרייה שמגדירה את שירות ברירת המחדל.
כדי לפרוס את קובץ התצורה של התור, מריצים את הפקודה הבאה:
gcloud app deploy queue.yaml
מחיקת תורים
כדי למחוק תור:
מסירים את הגדרת התור מהקובץ
queue.yaml.מעלים את השינוי לקובץ
queue.yaml.gcloud app deploy queue.yaml
מוחקים את התור במסוף Google Cloud , בוחרים את התור ולוחצים על מחיקת התור:
אם מוחקים תור מה Google Cloud מסוף, צריך לחכות 7 ימים לפני שיוצרים אותו מחדש באותו שם.