अगर आपको फ़ंक्शन को तय किए गए समय पर चलाने के लिए शेड्यूल करना है, तो 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.