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