שיטות מומלצות ומגבלות

כדאי להביא בחשבון את ההנחיות האלה כשמשתמשים ב-BatchJobService.

שיפור התפוקה

  • עדיף לבצע פחות משימות גדולות על פני משימות קטנות יותר.

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

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

הימנעות מבעיות בו-זמניות (concurrency)

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

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

אחזור תוצאות באופן אופטימלי

  • לא כדאי לבדוק את סטטוס המשימה לעיתים קרובות מדי, כי אתם עלולים להיתקל בשגיאות של מגבלת קצב.

  • אל תאחזר יותר מ-1,000 תוצאות בדף. השרת יכול להחזיר פחות זמן בגלל עומס או גורמים אחרים.

  • סדר התוצאות יהיה זהה לסדר ההעלאה.

הנחיות נוספות לשימוש

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

  • מומלץ לא להוסיף יותר מ-1,000 פעולות לכל AddBatchJobOperationsRequest ולהשתמש ב-sequence_token כדי להעלות את שאר הפעולות לאותה המשימה. בהתאם לתוכן של הפעולות, יותר מדי פעולות באותו AddBatchJobOperationsRequest עלולות לגרום לשגיאה REQUEST_TOO_LARGE. כדי לטפל בשגיאה הזו אפשר להקטין את מספר הפעולות ולנסות שוב לבצע את הפעולה AddBatchJobOperationsRequest.

הגבלות

  • כל BatchJob תומך במיליון פעולות לכל היותר.

  • כל חשבון יכול לכלול עד 100 משימות פעילות או בהמתנה בו-זמנית.

  • משימות בהמתנה מלפני יותר מ-7 ימים מוסרות באופן אוטומטי.