אתם יכולים להשתמש בבקשות חימום כדי לצמצם את זמן האחזור של הבקשות והתשובות בזמן שבו הקוד של האפליקציה נטען למופע שנוצר לאחרונה.
לפעמים App Engine צריך לטעון את הקוד של האפליקציה למופע חדש. טעינה של מופע יכולה לקרות במצבים הבאים:
- כשפורסים מחדש גרסה של האפליקציה.
- כשנוצרים מופעים חדשים בגלל שהעומס מהבקשות חורג מהקיבולת של המערך הנוכחי של המופעים הפועלים.
- כשמתבצעת תחזוקה ותיקונים של התשתית הבסיסית או של החומרה הפיזית.
טעינת הקוד של האפליקציה למופע חדש יכולה לגרום לבקשות טעינה. בקשות טעינה עלולות להגדיל את זמן האחזור של הבקשות עבור המשתמשים, אבל אפשר להימנע מזמן האחזור הזה באמצעות בקשות חימום. בקשות לחימום מראש טוענות את הקוד של האפליקציה למופע חדש לפני שבקשות פעילות מגיעות למופע הזה. בקשות לחימום, כמו בקשות אחרות, כפופות לזמן הקצוב לתפוגה של הבקשה.
אם בקשות החימום מופעלות באפליקציה, App Engine מנסה לזהות מתי האפליקציה צריכה מופע חדש, ויוזם בקשת חימום כדי לאתחל מופע חדש. עם זאת, ניסיונות הזיהוי האלה לא תמיד מצליחים. כתוצאה מכך, יכול להיות שתיתקלו בבקשות טעינה, גם אם הפעלתם באפליקציה בקשות warmup. לדוגמה, אם האפליקציה לא משרתת תעבורת נתונים, הבקשה הראשונה לאפליקציה תמיד תהיה בקשת טעינה, ולא בקשת warmup.
בקשות לחימום משתמשות בשעות שימוש במופע, כמו כל בקשה אחרת לאפליקציית App Engine. ברוב המקרים שבהם מופעלות בקשות warmup, לא תבחינו בעלייה בשעות השימוש במופע, כי האפליקציה פשוט עוברת אתחול בבקשת warmup במקום בבקשת טעינה. השימוש שלכם בשעות של מופע יכול לעלות אם תחליטו לבצע יותר עבודה, כמו שמירה מראש במטמון במהלך בקשת חימום. אם מגדירים את min_idle_instances לערך שגדול מ-0, יכול להיות שתיתקלו בבקשות לחימום כשמופעלים המופעים האלה בפעם הראשונה, אבל הם יישארו זמינים אחרי הזמן הזה.
הפעלת בקשות warmup
בקשות חימום משמשות את מתזמן App Engine, ששולט בהתאמת קנה המידה האוטומטית של מכונות על סמך ההגדרה שהמשתמש מספק. אם הפעלתם בקשות לחימום, App Engine ישלח בקשות אל GET./_ah/warmup אפשר להטמיע רכיבי handler לבקשה הזו כדי לבצע משימות ספציפיות לאפליקציה, כמו טעינה מראש מהמטמון של נתונים של האפליקציה.
מתזמן המשימות מפעיל מופעים כשהוא קובע שצריך עוד מופעים. יכול להיות שבקשות לחימום יופיעו ביומנים גם אם הן מושבתות, כי המתזמן משתמש בהן כדי להפעיל מופעים.
חשוב לדעת: אין ערובה לכך שהבקשות להפעלת החימום ייקראו. במצבים מסוימים, נשלחות בקשות טעינה במקום: למשל, אם המופע הוא הראשון שמופעל, או אם יש עלייה חדה בתנועה. עם זאת, אם הפעלתם בקשות הפעלה, המערכת תנסה לשלוח בקשות למופעים שכבר הופעלו.
כדי להפעיל בקשות חימום, מוסיפים את הרכיב warmup להנחיה inbound_services בקובץ app.yaml, לדוגמה:
inbound_services:
- warmup
יצירת ה-handler
יוצרים handler שיעבד את הבקשות שנשלחות אל /_ah/warmup.
ה-handler צריך לבצע את כל לוגיקת ההכנה שנדרשת לאפליקציה.
שימו לב: בקשת warmup שמוגדרת כברירת מחדל גורמת ליצירת אינדקס לכל קובצי ה-JAR בזיכרון, ומאתחלת את האפליקציה והמסננים.