फ़ंक्शन शेड्यूल करें


अगर आपको फ़ंक्शन को तय समय पर चलाने के लिए शेड्यूल करना है, तो इसका इस्तेमाल करें बनाने के लिए onSchedule हैंडलर Pub/Sub विषय जो Cloud Scheduler पर इवेंट ट्रिगर करने के लिए उस विषय के बारे में बताएँ.

शुरू करने से पहले

अपने Firebase प्रोजेक्ट में इस समाधान का इस्तेमाल करने के लिए, आपका प्रोजेक्ट ब्लेज़ प्राइसिंग प्लान. अगर यह पहले से ब्लेज़ प्लान में नहीं है, अपना प्राइसिंग प्लान अपग्रेड करें.

हालांकि बिलिंग करना ज़रूरी है, लेकिन आप पूरी लागत को मैनेज करने की उम्मीद कर सकते हैं, क्योंकि Cloud Scheduler में हर नौकरी के लिए, हर महीने 0.10 डॉलर चुकाने होते हैं. आपको हर Google खाते से तीन नौकरियां बिना किसी शुल्क के मिल सकती हैं. Blaze का इस्तेमाल करें लागत का अनुमान जनरेट करने के लिए, प्राइसिंग कैलकुलेटर अपने अनुमानित इस्तेमाल के हिसाब से फ़िल्टर करें.

आपके डिवाइस के लिए Pub/Sub और Cloud Scheduler एपीआई चालू होने चाहिए प्रोजेक्ट. ज़्यादातर Firebase प्रोजेक्ट के लिए इन्हें पहले से ही चालू किया जाना चाहिए; आप कर सकते हैं Google Cloud 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 रेफ़रंस पर जाएं.

शेड्यूल किए गए फ़ंक्शन को डिप्लॉय करना

शेड्यूल किए गए फ़ंक्शन को डिप्लॉय करने पर, उससे जुड़ा शेड्यूलर जॉब और pub/sub विषय अपने-आप बनते हैं. Firebase सीएलआई में विषय का नाम शामिल है, यहाँ आपको नौकरी और विषय दिखेगा. Google Cloud Console में बदल दिया जाएगा. विषय को यहां दिए गए कन्वेंशन के मुताबिक नाम दिया गया है:

Firebase के लिए शेड्यूल की गई तारीख-function_name-region

उदाहरण के लिए:

firebase-Scheduled-ScheduledFunctionCrontab-us-east1.