node-cron क्या है?
node-cron Node.js के लिए एक हल्की लाइब्रेरी है, जो UNIX सिस्टम के cron-एक्सप्रेशन सिंटैक्स का उपयोग करके JavaScript फ़ंक्शन को शेड्यूल पर निष्पादित करने की अनुमति देती है। यह नियमित कार्यों को स्वचालित करने के लिए आदर्श है: कैश साफ़ करना, ईमेल न्यूज़लेटर भेजना, डेटाबेस का बैकअप लेना या सर्वर की निगरानी करना।
टास्क शेड्यूलर की आवश्यकता क्यों है?
वेब एप्लिकेशन में, अक्सर उपयोगकर्ता के अनुरोध पर नहीं, बल्कि एक निश्चित समय पर कोड निष्पादित करने की आवश्यकता होती है। बाहरी सेवाओं (जैसे सर्वर पर cron) का उपयोग करने के बजाय, node-cron आपके Node.js प्रक्रिया के अंदर ही काम करता है। यह डिप्लॉयमेंट को सरल बनाता है, सिस्टम शेड्यूलर को कॉन्फ़िगर करने की आवश्यकता नहीं होती है, और कंटेनरीकृत एप्लिकेशन (Docker, Kubernetes) के लिए आदर्श है।
इंस्टॉलेशन
npm के माध्यम से इंस्टॉलेशन एक कमांड से किया जाता है:
npm install node-cronइंस्टॉलेशन के बाद, लाइब्रेरी उपयोग के लिए तैयार है — किसी अतिरिक्त डिपेंडेंसी की आवश्यकता नहीं है।
मुख्य विशेषताएं
- लचीला शेड्यूल — मानक cron-पैटर्न (मिनट, घंटे, दिन, महीने, सप्ताह के दिन) के लिए समर्थन।
- शुरू और रोकना — प्रत्येक कार्य को आवश्यकतानुसार शुरू या रोका जा सकता है।
- एरर हैंडलिंग — एप्लिकेशन को क्रैश किए बिना एरर को लॉग करने के लिए कॉलबैक सेट किया जा सकता है।
- सरल सिंटैक्स — केवल दो मेथड:
scheduleऔरvalidate।
JavaScript (Node.js) पर कोड उदाहरण
एक कार्य बनाते हैं जो हर मिनट कंसोल में वर्तमान समय प्रिंट करता है:
const cron = require('node-cron');
// कार्य हर मिनट निष्पादित होता है: '* * * * *'
cron.schedule('* * * * *', () => {
console.log('कार्य निष्पादित:', new Date().toLocaleString());
});
console.log('शेड्यूलर शुरू हो गया है। बाहर निकलने के लिए Ctrl+C दबाएं।');एक अधिक जटिल उदाहरण — प्रतिदिन सुबह 8 बजे रिपोर्ट भेजना:
const cron = require('node-cron');
cron.schedule('0 8 * * *', () => {
console.log('दैनिक रिपोर्ट भेजी जा रही है...');
// यहां ईमेल भेजने का फ़ंक्शन कॉल करें
}, {
scheduled: true,
timezone: 'Europe/Moscow'
});cron-एक्सप्रेशन की सत्यता की जाँच:
const isValid = cron.validate('*/5 * * * *');
console.log(isValid); // truenode-cron का उपयोग कब करें?
- बैकअप ऑटोमेशन — हर रात डेटाबेस डंप बनाना।
- समय-समय पर सफाई — पुराने सत्र या अस्थायी फ़ाइलों को हटाना।
- मॉनिटरिंग — सेवाओं की उपलब्धता की जाँच करना और अलर्ट भेजना।
- न्यूज़लेटर — शेड्यूल पर ईमेल भेजना (जैसे, डाइजेस्ट)।
- कैश अपडेट — गैर-पीक घंटों के दौरान कैश को पुनर्निर्मित करना।
node-cron लाइब्रेरी किसी भी आकार के प्रोजेक्ट के लिए उपयुक्त है — सरल स्क्रिप्ट से लेकर माइक्रोसर्विस आर्किटेक्चर तक। इसे बाहरी डिपेंडेंसी की आवश्यकता नहीं है और यह लंबे समय तक चलने पर भी स्थिर रूप से काम करती है।