בדף הזה מוסבר איך ליצור תורי משימות ב-Cloud Tasks. כשמשימות מתווספות לתור, התור שולח אותן ומוודא שהן מעובדות באופן מהימן על ידי שירות, שנקרא גם worker.
שימו לב לנקודות הבאות:
שמות של תורים מורכבים משלושה חלקים: מזהה פרויקט, מיקום ומזהה תור. צריך להיות לכם Google Cloud פרויקט שמספק את מזהה הפרויקט.
אם אתם משתמשים במשימות עם יעד ב-App Engine, אתם צריכים גם אפליקציה ב-App Engine שנמצאת באזור ספציפי, שבו פועלים התור וה-handlers שלכם. כשמוסיפים את האפליקציה, חשוב לשים לב לאזור.
כדי להשתמש במשימות עם יעד HTTP, לא צריך אפליקציית App Engine. פשוט בוחרים מיקום של Google Cloud כשיוצרים את התור.
יצירת תור
אפשר ליצור תור בדרכים הבאות:
- במסוף Google Cloud
- באמצעות Google Cloud CLI בטרמינל או ב-Cloud Shell
- שליחת בקשה ישירה ל-Cloud Tasks API
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.
לוחצים על Create queue.
מזינים שם לתור, לדוגמה
my-queue.ברשימה Region, בוחרים מיקום נתמך שבו התור יפעל, לדוגמה
asia-south1.אם הארגון שלכם מגביל את מיקום המשאבים ואתם רוצים ליצור את התור ב-
us-central1או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תורים גם ב-us-central1וגם ב-us-central2(גם אם אתם צריכים תור רק באחד מהאזורים האלה).אם רוצים, אפשר להגדיר את התור.
לוחצים על יצירה.
gcloud
משתמשים בפקודה gcloud tasks queues create כדי ליצור את התור:
gcloud tasks queues create QUEUE_ID \
--location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
QUEUE_ID: המזהה שאתם מקצים לתור. לדוגמה:my-queue.
LOCATION: אזור נתמך שבו התור יפעל, לדוגמהasia-south1.אם הארגון שלכם מגביל את מיקום המשאבים ואתם רוצים ליצור את התור ב-
us-central1או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תורים גם ב-us-central1וגם ב-us-central2(גם אם אתם צריכים תור רק באחד מהאזורים האלה).
דגלים אחרים לפקודה של ה-CLI של gcloud מאפשרים להגדיר מגבלות קצב, אפשרויות לניסיון חוזר, סוגי תורים ועוד.
API בארכיטקטורת REST
כדי ליצור תור, משתמשים ב-method projects.locations.queues.create.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: אזור נתמך שבו התור יפעל, לדוגמהasia-south1.אם בארגון שלכם מיקום המשאבים מוגבל ואתם רוצים ליצור את התור ב-
us-central1או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תורים גם ב-us-central1וגם ב-us-central2(גם אם אתם צריכים תור רק באחד מהאזורים האלה). -
QUEUE_ID: המזהה שאתם מקצים לתור, לדוגמהmy-queue.
Queue שאפשר להגדיר כוללים הגבלת קצב של יצירת בקשות, אפשרויות ניסיון חוזר, סוגי תורים ועוד.
תוכן בקשת JSON:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה בהצלחה, גוף התשובה יכיל מופע חדש של Queue:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
"rateLimits": {
"maxDispatchesPerSecond": 500,
"maxBurstSize": 100,
"maxConcurrentDispatches": 1000
},
"retryConfig": {
"maxAttempts": 100,
"minBackoff": "0.100s",
"maxBackoff": "3600s",
"maxDoublings": 16
},
"state": "RUNNING"
}
יכול להיות שיעברו כמה דקות עד שתור חדש יהיה זמין.
תיאור התור
כדי לוודא שהתור נוצר בהצלחה, אפשר לבצע את הפעולות הבאות:
- במסוף Google Cloud
- באמצעות ה-CLI של gcloud בטרמינל או ב-Cloud Shell
שליחת בקשה ישירה ל-Cloud Tasks API
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.
סימן וי ירוק מציין שהתור פועל.
כדי לראות פרטים נוספים, לוחצים על שם התור ואז על הכרטיסייה Configuration.
gcloud
כדי לוודא שהתור נוצר בהצלחה, משתמשים בפקודה gcloud tasks queues describe:
gcloud tasks queues describe QUEUE_ID \
--location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
QUEUE_ID: מזהה התור (השם המקוצר שלו) -
LOCATION: המיקום של התור
הפלט אמור להיראות כך:
name: projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
API בארכיטקטורת REST
כדי לאחזר תור, משתמשים ב-method projects.locations.queues.get.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: האזור שבו נפרס התור, לדוגמהus-central1. -
QUEUE_ID: המזהה הקצר של התור, לדוגמהmy-queue.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הפעולה בוצעה ללא שגיאות, גוף התשובה יכיל מופע של Queue:
{
"name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
"rateLimits": {
"maxDispatchesPerSecond": 500,
"maxBurstSize": 100,
"maxConcurrentDispatches": 1000
},
"retryConfig": {
"maxAttempts": 100,
"minBackoff": "0.100s",
"maxBackoff": "3600s",
"maxDoublings": 16
},
"state": "RUNNING"
}
פתרון בעיות ביצירת תור
אם אתם לא רואים את הפלט שציפיתם לו, אתם יכולים לנסות את הפעולות הבאות:
- ממתינים לפחות דקה עד שהתור יתחיל לפעול.
צריך לוודא שאין כבר תור עם אותו מזהה. כדי לראות את התורים בפרויקט, משתמשים בפקודה
gcloud tasks queues list:gcloud tasks queues list \ --location=LOCATIONכדי לחפש בכמה מיקומים, צריך לשלוח כמה בקשות.
בודקים אם הגעתם למכסה של התור:
במסוף Google Cloud , נכנסים לדף API/Service Details של Cloud Tasks API.
לוחצים על הכרטיסייה Quotas & System limits.
כדי להגדיל מכסה, בשורה של המכסה לוחצים על סמל האפשרויות הנוספות > Edit quota.
מריצים מחדש את הפקודות ליצירת התור ומוודאים שכל שלב הושלם כמו שצריך.
המאמרים הבאים
- הגדרת ניתוב, מגבלות וניסיונות חוזרים בתור
- יצירת משימות ב-Cloud Tasks
- הגדרת פרמטרים לניסיון חוזר של משימה
- ניהול תורים ומשימות