ניהול תורים ומשימות

אפשר לנהל תורי משימות ומשימות בדרכים הבאות:

  • במסוף Google Cloud
  • באמצעות Google Cloud CLI בטרמינל או ב-Cloud Shell
  • על ידי שליחת בקשה ל-Cloud Tasks API

מחיקת משימה מתור

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

המסוף

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

    כניסה לדף Queues

  2. לוחצים על שם התור של המשימה שרוצים למחוק.

  3. מסמנים את התיבה שלצד המשימה שרוצים למחוק.

  4. לוחצים על מחיקת המשימה.

  5. בהודעה שמופיעה, לוחצים על מחיקה.

gcloud

כדי למחוק משימה באמצעות הפקודה gcloud tasks delete:

gcloud tasks delete TASK_NAME \
    --queue=QUEUE_ID \
    --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • TASK_NAME: השם של המשימה שרוצים למחוק
  • ‫QUEUE_ID: השם של התור שהמשימה שייכת לו
  • ‫LOCATION: האזור שבו התור נפרס – לדוגמה, us-central1

REST

כדי למחוק משימה, משתמשים בשיטה projects.locations.queues.tasks.delete.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫QUEUE_ID: שם התור שאליו משתייכת המשימה
  • ‫TASK_NAME: השם של המשימה שרוצים למחוק
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • ‫LOCATION: האזור שבו התור קיים, לדוגמה, us-central1

גוף הבקשה צריך להיות ריק.

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

מחיקת קבוצת משימות מתור

כדי למחוק קבוצה של משימות מתור, משתמשים בשיטה projects.locations.queues.tasks.batchDelete כדי למחוק רשימה של שמות משימות.

שימו לב לנקודות הבאות:

  • כל המשימות צריכות להימחק מאותו תור.

  • יש הגבלה על מספר המשימות שאפשר למחוק באצווה אחת. מידע נוסף מופיע במאמר בנושא מכסות ומגבלות.

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

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

  • אפשר גם ליצור קבוצה של משימות. מידע נוסף מופיע במאמר יצירת קבוצה של משימות.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫TASK_NAME: השם של המשימות שרוצים למחוק, בפורמט הבא: projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • ‫REGION: האזור שבו התור קיים, לדוגמה, us-central1
  • ‫QUEUE_ID: שם התור שאליו משתייכות המשימות

גוף הבקשה מכיל רשימה של שמות משימות.

תוכן בקשת JSON:

{
  "names": [
    "TASK_NAME"
  ]
}

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של Operation.

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.tasks.v2.BatchDeleteTasksMetadata"
  },
  "done": false
}

מחיקה לצמיתות של כל המשימות מתור

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

המסוף

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

    כניסה לדף Queues

  2. לוחצים על שם התור של המשימות שרוצים למחוק.

  3. לוחצים על ניקוי התור.

  4. בהודעה, לוחצים על מחיקה.

gcloud

מנקים תור באמצעות הפקודה gcloud tasks queues purge:

gcloud tasks queues purge QUEUE_ID \
    --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • ‫QUEUE_ID: שם התור שרוצים לנקות
  • ‫LOCATION: האזור שבו התור נפרס – לדוגמה, us-central1

REST

כדי לנקות תור, משתמשים בשיטה projects.locations.queues.purge.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫QUEUE_ID: שם התור שרוצים לנקות
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • ‫LOCATION: האזור שבו התור נפרס, למשל us-central1

גוף הבקשה צריך להיות ריק.

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של 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",
  "purgeTime": "2025-03-28T13:06:30.110255Z"
}

השהיה או המשך של תורים

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

המסוף

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

    כניסה לדף Queues

  2. מסמנים את התיבה של התור שרוצים להשהות.

  3. לוחצים על השהיית התור.

  4. בהודעה, לוחצים על השהיה.

  5. כדי להמשיך את התור, לוחצים על המשך התור.

gcloud

  1. כדי להשהות תור, משתמשים בפקודה gcloud tasks queues pause:

    gcloud tasks queues pause QUEUE_ID \
        --location=LOCATION

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫QUEUE_ID: שם התור שרוצים להשהות
    • ‫LOCATION: האזור שבו התור נפרס – לדוגמה, us-central1
  2. ממשיכים את התור באמצעות הפקודה gcloud tasks queues resume:

    gcloud tasks queues resume QUEUE_ID \
        --location=LOCATION

REST

  1. כדי להשהות תור, משתמשים בשיטה projects.locations.queues.pause.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫QUEUE_ID: שם התור שרוצים להשהות
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • ‫LOCATION: האזור שבו התור נפרס, למשל us-central1

    גוף הבקשה צריך להיות ריק.

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

    אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של 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": "PAUSED"
    }
    

  2. כדי להמשיך תור, משתמשים בשיטה projects.locations.queues.resume.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫QUEUE_ID: השם של התור שרוצים להפעיל מחדש
    • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
    • ‫LOCATION: האזור שבו התור נפרס, למשל us-central1

    גוף הבקשה צריך להיות ריק.

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

    אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של 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"
    }
    

הצגת רשימת התורים

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

  • Max rate (מסוף), MAX_RATE (gcloud), maxDispatchesPerSecond (REST)
  • ‫Max concurrent (מסוף), MAX_NUM_OF_TASKS (gcloud),‏ maxConcurrentDispatches (REST)

המסוף

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

    כניסה לדף Queues

    מוצגות כל התורים ב Google Cloud פרויקט.

  2. כדי לראות פרטים נוספים, לוחצים על שם התור ואז על הכרטיסייה הגדרות.

    מוצגים פרטים על מגבלת הקצב ועל פרמטר הניסיון החוזר.

gcloud

מציגים את רשימת התורים באמצעות הפקודה gcloud tasks queues list:

gcloud tasks queues list \
    --location=LOCATION

מחליפים את LOCATION באזור שבו התור נפרס, לדוגמה us-central1. אם לא מציינים מיקום, המערכת משתמשת במיקום של אפליקציית App Engine בפרויקט Google Cloud , אם היא קיימת. אחרת, צריך לציין מיקום.

הפלט אמור להיראות כך:

QUEUE_NAME: my-queue
STATE: PAUSED
MAX_NUM_OF_TASKS: 1000
MAX_RATE (/sec): 500.0
MAX_ATTEMPTS: 100
...

REST

כדי להציג רשימה של תורים, משתמשים בשיטה projects.locations.queues.list.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud.
  • ‫LOCATION: האזור שבו נוצרים התורים, לדוגמה us-central1.

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

אם הפעולה מצליחה, גוף התגובה מכיל מופעים של משאבי Queue, והתגובה תהיה דומה לדוגמה הבאה:

{
  "queues": [
    {
      "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": "PAUSED",
      "purgeTime": "2025-03-28T13:37:32.292552Z"
    },
    ...
  ],
  "nextPageToken": "CjQKCHppcHBlcjIAEgwI9-GExAYQ_oDc1AMaGioLeWlrZXMtYWdhaW4yC3VzLWNlbnRyYWwx"
}

מחיקת תורים

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

המסוף

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

    כניסה לדף Queues

  2. מסמנים את התיבה של התור שרוצים למחוק.

  3. לוחצים על מחיקת התור.

  4. בהנחיה, מקלידים את שם התור ולוחצים על אישור.

gcloud

כדי למחוק תור, משתמשים בפקודה gcloud tasks queues delete:

gcloud tasks queues delete QUEUE_ID \
    --location=LOCATION

מחליפים את מה שכתוב בשדות הבאים:

  • ‫QUEUE_ID: שם התור שרוצים למחוק
  • ‫LOCATION: האזור שבו התור נפרס – לדוגמה, us-central1

REST

כדי למחוק תור, משתמשים בשיטה projects.locations.queues.delete.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫QUEUE_ID: השם של התור שרוצים למחוק
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • ‫LOCATION: האזור שבו התור נפרס, למשל us-central1

גוף הבקשה צריך להיות ריק.

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

אם הפעולה בוצעה ללא שגיאות, גוף התגובה יהיה ריק.

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