פונקציות לוח זמנים


אם ברצונך לתזמן פונקציות לפעול בזמנים מוגדרים, השתמש במטפל onSchedule כדי ליצור נושא Pub/Sub שמשתמש ב- Cloud Scheduler כדי להפעיל אירועים בנושא זה.

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

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

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

יש להפעיל את ממשקי ה-Pub/Sub וה-Cloud Scheduler עבור הפרויקט שלך. אלה כבר אמורים להיות מופעלים עבור רוב הפרויקטים של Firebase; אתה יכול לאמת ב- Google Cloud Platform Console .

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

ב-Cloud Functions for Firebase, לוגיקה של תזמון נמצאת בקוד הפונקציות שלך, ללא דרישות מיוחדות של זמן פריסה. כדי ליצור פונקציה מתוזמנת, השתמש functions.pubsub.schedule('your schedule').onRun((context)) . לדוגמה, כדי להפעיל פונקציה כל חמש דקות עם App Engine 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 נתמכים על ידי Cloud Scheduler. לדוגמה, כדי להשתמש ב-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 . עיין בהפניה של Cloud Scheduler למידע נוסף על מאפיינים נתמכים.

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

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

firebase-scheduled- function_name - region

לדוגמה:

firebase-scheduled-scheduledFunctionCrontab-us-east1.