अगर आपको तय किए गए समय पर फ़ंक्शन शेड्यूल करने हैं, तो
onSchedule हैंडलर का इस्तेमाल करके, एक
Pub/Sub विषय बनाएं. यह विषय,
Cloud Scheduler का इस्तेमाल करके उस विषय पर इवेंट ट्रिगर करता है.
शुरू करने से पहले
शेड्यूल किए गए फ़ंक्शन के लिए बिल भेजा जाता है. हालांकि, कुल लागत को मैनेज किया जा सकता है, क्योंकि हर Cloud Scheduler जॉब की कीमत हर महीने 0.10 डॉलर (यूएसडी) होती है. साथ ही, हर Google खाते के लिए तीन जॉब की अनुमति होती है. इसके लिए कोई शुल्क नहीं लिया जाता. इस्तेमाल के अनुमान के आधार पर लागत का अनुमान पाने के लिए, ब्लेज़ प्लान के प्राइसिंग कैलकुलेटर का इस्तेमाल करें.
आपके प्रोजेक्ट के लिए, Pub/Sub और Cloud Scheduler एपीआई चालू होने चाहिए. ज़्यादातर Firebase प्रोजेक्ट के लिए, ये एपीआई पहले से ही चालू होते हैं. इनकी पुष्टि Google Cloud Console में की जा सकती है.
शेड्यूल किया गया फ़ंक्शन लिखना
Cloud Functions for Firebase में, शेड्यूल करने की लॉजिक आपके फ़ंक्शन कोड में मौजूद होती है,
इसके लिए, डिप्लॉयमेंट के दौरान किसी खास ज़रूरत की ज़रूरत नहीं होती. शेड्यूल किया गया फ़ंक्शन बनाने के लिए,
functions.pubsub.schedule('your schedule').onRun((context)) का इस्तेमाल करें.
उदाहरण के लिए, App Engine cron.yaml सिंटैक्स का इस्तेमाल करके, हर पांच मिनट में कोई फ़ंक्शन चलाने के लिए, यह तरीका अपनाएं:App Engine
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 सिंटैक्स के साथ काम करता है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 CLI, विषय का नाम दिखाता है, साथ ही, Google Cloud Console में जॉब और विषय देखा जा सकता है. विषय का नाम, इस कन्वेंशन के मुताबिक रखा जाता है:
firebase-scheduled-function_name-region
उदाहरण के लिए:
firebase-scheduled-scheduledFunctionCrontab-us-east1.