कार्यों को शेड्यूल करें


यदि आप निर्दिष्ट समय पर चलने के लिए फ़ंक्शन शेड्यूल करना चाहते हैं, तो एक पब/उप विषय बनाने के लिए onSchedule हैंडलर का उपयोग करें जो उस विषय पर घटनाओं को ट्रिगर करने के लिए क्लाउड शेड्यूलर का उपयोग करता है।

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

अपने फायरबेस प्रोजेक्ट में इस समाधान का उपयोग करने के लिए, आपका प्रोजेक्ट ब्लेज़ मूल्य निर्धारण योजना पर होना चाहिए। यदि यह पहले से ही ब्लेज़ योजना पर नहीं है, तो अपनी मूल्य निर्धारण योजना को अपग्रेड करें

हालाँकि बिलिंग आवश्यक है, आप उम्मीद कर सकते हैं कि कुल लागत प्रबंधनीय होगी, क्योंकि प्रत्येक क्लाउड शेड्यूलर कार्य की लागत $0.10 (USD) प्रति माह है, और प्रति 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;
});

यूनिक्स क्रॉन्टैब और ऐप इंजन सिंटैक्स दोनों क्लाउड शेड्यूलर द्वारा समर्थित हैं। उदाहरण के लिए, किसी निर्धारित फ़ंक्शन को चलाने के लिए एक विशिष्ट समयक्षेत्र का चयन करने के लिए क्रोंटैब का उपयोग करने के लिए, कुछ इस तरह करें:

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 डेटाबेस से एक समय क्षेत्र का नाम होना चाहिए। समर्थित संपत्तियों पर अधिक जानकारी के लिए क्लाउड शेड्यूलर संदर्भ देखें।

एक निर्धारित फ़ंक्शन तैनात करें

जब आप एक शेड्यूल किए गए फ़ंक्शन को तैनात करते हैं, तो संबंधित शेड्यूलर कार्य और पब/उप विषय स्वचालित रूप से बनाए जाते हैं। फायरबेस सीएलआई विषय नाम को प्रतिध्वनित करता है, और आप जीसीपी कंसोल में कार्य और विषय देख सकते हैं। विषय का नाम निम्नलिखित परिपाटी के अनुसार रखा गया है:

फायरबेस-शेड्यूल- function_name - region

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

फायरबेस-शेड्यूल-शेड्यूलडफंक्शनक्रोनटैब-यूएस-ईस्ट1।