अगर आपको फ़ंक्शन को तय समय पर चलाने के लिए शेड्यूल करना है, तो onSchedule हैंडलर का इस्तेमाल करके, Pub/Sub विषय बनाएं. यह विषय, उस विषय पर इवेंट ट्रिगर करने के लिए Cloud Scheduler का इस्तेमाल करता है.
शुरू करने से पहले
शेड्यूल किए गए फ़ंक्शन के लिए बिल भेजा जाता है. हालांकि, कुल लागत को मैनेज किया जा सकता है, क्योंकि हर Cloud Scheduler जॉब के लिए हर महीने 0.10 डॉलर (USD) खर्च होते हैं. साथ ही, हर Google खाते के लिए, बिना किसी शुल्क के तीन जॉब की अनुमति होती है. Blaze प्लान के प्राइसिंग कैलकुलेटर का इस्तेमाल करके, अपने अनुमानित इस्तेमाल के आधार पर लागत का अनुमान लगाएं.
आपके प्रोजेक्ट के लिए, Pub/Sub और Cloud Scheduler एपीआई चालू होने चाहिए. Firebase के ज़्यादातर प्रोजेक्ट के लिए, ये पहले से ही चालू होने चाहिए. इनकी पुष्टि Google Cloud कंसोल में की जा सकती है.
शेड्यूल किया गया फ़ंक्शन लिखना
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;
});
Cloud Scheduler में 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 डेटाबेस में मौजूद टाइम ज़ोन का नाम होनी चाहिए. इस्तेमाल की जा सकने वाली प्रॉपर्टी के बारे में ज़्यादा जानकारी के लिए,
Cloud Scheduler रेफ़रंस
देखें.
शेड्यूल किया गया फ़ंक्शन डिप्लॉय करना
शेड्यूल किए गए फ़ंक्शन को डिप्लॉय करने पर, उससे जुड़ा शेड्यूलर जॉब और Pub/Sub विषय अपने-आप बन जाता है. Firebase सीएलआई, विषय का नाम दिखाता है. इसके बाद, Google Cloud कंसोल में जाकर, जॉब और विषय को देखा जा सकता है. विषय का नाम इस तरीके से रखा जाता है:
firebase-scheduled-function_name-region
उदाहरण के लिए:
firebase-scheduled-scheduledFunctionCrontab-us-east1.