מעבר מ-Task Queues ל-Cloud Tasks

אתם יכולים לעבור משימוש בשירות התורים של סביבת App Engine רגילה (תורי משימות) דרך App Engine Task Queue API לגישה לאותו שירות באמצעות Cloud Tasks, שהוא API חדש ל-RPC/API בארכיטקטורת REST. אפשר להשתמש ב-Cloud Tasks מחוץ לסביבות זמן ריצה של הדור הראשון של App Engine, במיוחד מכל הסביבות הגמישות של App Engine, וגם מסביבות זמן ריצה רגילות של הדור השני של App Engine.

‫Cloud Tasks ושירות תור המשימות הנוכחי של הסביבה הרגילה של App Engine נמצאים באותו יקום. אפשר להוסיף לאותם תורים באמצעות כל אחד מהממשקי API. בין אם משתמשים ב-App Engine SDK או ב-Cloud Tasks API החדש, תור באפליקציה מעביר משימה לכתובת URL של handler לעיבוד אסינכרוני.

תכונות חדשות

‫Cloud Tasks מספק כמה תכונות שלא זמינות דרך App Engine SDK, כולל:

  • ניהול התור באמצעות ה-API:

    אפשר ליצור, למחוק ולהשהות תורים, ולבצע משימות אחרות לניהול תורים באמצעות ה-API, דרך המסוף או באמצעות הפקודה gcloud.

  • הפקודה List Queues:

    אתם יכולים להציג רשימה של כל התורים שהגדרתם בפרויקט.

  • הפקודה List Tasks:

    אתם יכולים להציג רשימה של כל המשימות בכל אחד מהתורים שלכם.

  • שילוב של ניהול זהויות והרשאות גישה (IAM):

    אתם יכולים לאבטח את הגישה לתורים ולמשימות בצורה מפורטת מאוד באמצעות IAM.

  • יעדים של HTTP

    אפשר לטרגט מטפלים בכל נקודת קצה של HTTP עם כתובת IP ציבורית.

תכונות ב-Task Queues שעדיין לא זמינות דרך Cloud Tasks API:

  • תורי משיכה:

    אפשר להשתמש ב-Cloud Pub/Sub, מוצר GA, כדי להטמיע הרבה מאותם תרחישי שימוש כמו תורי בקשות מסוג pull.

  • משימות טרנזקציונליות:

    ‫Cloud Tasks לא תומך בהוספת משימה לתור כחלק מעסקה ב-Cloud Datastore, כך שהמשימה מתווספת לתור רק אם העסקה מתבצעת בהצלחה – ויש הבטחה שהיא תתווסף לתור.

  • משימות שנדחו או שהושהה הביצוע שלהן:

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

  • Namespacing:

    חלק מסביבות זמן הריצה שמשתמשות ב-App Engine SDK כוללות ממשקי API שתומכים בריבוי דיירים של משימות באמצעות מרחבי שמות. התכונה הזו לא זמינה ב-Cloud Tasks.

  • אמולטור מקומי:

    שרת הפיתוח המקומי שמסופק על ידי ה-CLI של gcloud או App Engine SDK לא תומך בנקודות קצה מדומה לקריאות ל-Cloud Tasks API.

  • הוספת משימה אסינכרונית:

    משתמשים ב-App Engine SDK יכולים לבחור להוסיף משימות לתורים באופן אסינכרוני. התכונה הזו לא זמינה ב-Cloud Tasks.

למידע נוסף

מדריכים מפורטים יותר להעברת הקוד זמינים בסדרת המסמכים בנושא תור המשימות של App Engine: