יצירת תורי משימות ב-Cloud Tasks

בדף הזה מוסבר איך ליצור תורי משימות ב-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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.

    מעבר לתורים

  2. לוחצים על Create queue.

  3. מזינים שם לתור, לדוגמה my-queue.

  4. ברשימה Region, בוחרים מיקום נתמך שבו התור יפעל, לדוגמה asia-south1.

    אם הארגון שלכם מגביל את מיקום המשאבים ואתם רוצים ליצור את התור ב-us-central1 או ב-us-central2, מדיניות הארגון צריכה לאפשר יצירת תורים גם ב-us-central1 וגם ב-us-central2 (גם אם אתם צריכים תור רק באחד מהאזורים האלה).

  5. אם רוצים, אפשר להגדיר את התור.

  6. לוחצים על יצירה.

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Tasks > Queues.

    מעבר לתורים

    סימן וי ירוק מציין שהתור פועל.

  2. כדי לראות פרטים נוספים, לוחצים על שם התור ואז על הכרטיסייה 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

    כדי לחפש בכמה מיקומים, צריך לשלוח כמה בקשות.

  • בודקים אם הגעתם למכסה של התור:

    1. במסוף Google Cloud , נכנסים לדף API/Service Details של Cloud Tasks API.

      כניסה לדף API/Service Details

    2. לוחצים על הכרטיסייה Quotas & System limits.

    3. כדי להגדיל מכסה, בשורה של המכסה לוחצים על סמל האפשרויות הנוספות > Edit quota.

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

  • מריצים מחדש את הפקודות ליצירת התור ומוודאים שכל שלב הושלם כמו שצריך.

המאמרים הבאים