תזמון פונקציות

אם אתה רוצה פונקציות לוח זמנים לרוץ בזמנים שצוינו, השימוש functions.pubsub.schedule().onRun() שיטת נוחות זו יוצרת פאב / תת נושא ומשתמשת ענן מתזמן לאירועי הדק בנושא זה, על מנת להבטיח כי ריצות הפונקציה שלך על לוח הזמנים הרצוי.

לפני שאתה מתחיל

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

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

יש להפעיל את ממשקי ה- API של מתזמן הפאב / משנה והענן, עבור הפרויקט שלך. אלה כבר צריכים להיות מופעלים עבור מרבית פרויקטים של Firebase; אתה יכול לאמת את מסוף פלטפורמת Google Cloud .

כתוב פונקציה מתוזמנת

בפונקציות ענן עבור Firebase, לוגיקה בתזמון נמצאת בקוד הפונקציות שלך, ללא דרישות זמן פריסה מיוחדות. כדי ליצור פונקציה מתוכננת, השימוש functions.pubsub.schedule('your schedule').onRun((context)) . לדוגמה, כדי להפעיל פונקציה כל חמש דקות עם cron.yaml מנוע יישום תחביר, לעשות משהו כזה:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

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

exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
  console.log('This will be run every day at 11:05 AM Eastern!');
  return null;
});

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

פרוס פונקציה מתוזמנת

בעת פריסת פונקציה מתוזמנת, עבודת מתזמן הקשורה ונושא פאב / משנה נוצרים באופן אוטומטי. Firebase CLI מהדהד את שם הנושא, ואתה יכול לראות את העבודה ואת הנושא של GCP Console . הנושא נקרא על פי המוסכמה הבאה:

firebase-scheduled- function_name - region

לדוגמה:

firebase-מתוזמן-מתוזמןFunctionCrontab-us-east1.