फ़ंक्शन शेड्यूल करें


अगर आपको फ़ंक्शन को तय समय पर चलाने के लिए शेड्यूल करना है, तो इसका इस्तेमाल करें बनाने के लिए onSchedule हैंडलर Pub/Sub का ऐसा विषय जो क्लाउड शेड्यूलर की मदद से, इवेंट को ट्रिगर किया जा सकता है उस विषय के बारे में बताएँ.

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

अपने Firebase प्रोजेक्ट में इस समाधान का इस्तेमाल करने के लिए, आपका प्रोजेक्ट ब्लेज़ प्राइसिंग प्लान. अगर यह पहले से ब्लेज़ प्लान में नहीं है, अपना प्राइसिंग प्लान अपग्रेड करें.

हालांकि बिलिंग करना ज़रूरी है, लेकिन आप पूरी लागत को मैनेज करने की उम्मीद कर सकते हैं, क्योंकि Cloud शेड्यूलर की हर नौकरी के लिए, हर महीने 0.10 डॉलर चुकाने पड़ते हैं. आपको हर Google खाते से तीन नौकरियां बिना किसी शुल्क के मिल सकती हैं. Blaze का इस्तेमाल करें लागत का अनुमान जनरेट करने के लिए, प्राइसिंग कैलकुलेटर आपके अनुमानित इस्तेमाल के हिसाब से.

आपके लिए Pub/Sub और Cloud शेड्यूलर एपीआई चालू होने चाहिए प्रोजेक्ट. ज़्यादातर Firebase प्रोजेक्ट के लिए इन्हें पहले से ही चालू किया जाना चाहिए; आप कर सकते हैं Google Cloud Platform Console में पुष्टि करें.

शेड्यूल किया गया फ़ंक्शन लिखें

'Firebase के लिए Cloud Functions' में, शेड्यूलिंग लॉजिक आपके फ़ंक्शन कोड में मौजूद होता है, इसमें डिप्लॉयमेंट के लिए किसी खास समय की ज़रूरत नहीं होती. शेड्यूल किया गया फ़ंक्शन बनाने के लिए, 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 सिंटैक्स, दोनों 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 सीएलआई, विषय का नाम दिखाता है, यहाँ आपको नौकरी और विषय दिखेगा. GCP कंसोल. विषय को यहां दिए गए कन्वेंशन के मुताबिक नाम दिया गया है:

Firebase के लिए शेड्यूल की गई तारीख-function_name-region

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

firebase-Scheduled-ScheduledFunctionCrontab-us-east1.