node-cron क्या है?
node-cron Node.js के लिए एक हल्की-फुल्की लाइब्रेरी है, जो आपको cron-एक्सप्रेशन के सिंटैक्स का उपयोग करके शेड्यूल के अनुसार JavaScript फंक्शन (कार्य) चलाने की अनुमति देती है। यह Unix में सिस्टम शेड्यूलर cron का एक एनालॉग है, लेकिन आपके एप्लिकेशन के अंदर काम करता है।
इसकी आवश्यकता क्यों है?
यह लाइब्रेरी सर्वर पर नियमित कार्यों को स्वचालित करने के लिए आवश्यक है: डेटाबेस की सफाई, ईमेल न्यूज़लेटर भेजना, बैकअप बनाना, कैश अपडेट करना, डेटा पार्सिंग और अन्य कोई भी आवधिक कार्य। यह आपको अपने स्वयं के टाइमर लिखने और समय अंतराल को मैन्युअल रूप से प्रबंधित करने की आवश्यकता से मुक्त करता है।
इंस्टॉलेशन
इंस्टॉलेशन npm या yarn के माध्यम से किया जाता है:
npm install node-cronया
yarn add node-cronमुख्य विशेषताएं
- सिंटैक्स की सरलता: मानक cron-एक्सप्रेशन (मिनट, घंटे, दिन आदि) का उपयोग करता है
- लचीलापन: सेकंड के लिए समर्थन, वैकल्पिक टाइम ज़ोन, कार्यदिवसों/सप्ताहांतों पर निष्पादन
- कार्य प्रबंधन: निष्पादन को नियंत्रित करने के लिए
start(),stop(),destroy()मेथड - हल्कापन: बाहरी डिपेंडेंसी की आवश्यकता नहीं, लाइब्रेरी का आकार न्यूनतम है
JavaScript (Node.js) पर कोड उदाहरण
const cron = require('node-cron');
// कार्य: हर मिनट एक संदेश प्रिंट करेंcron.schedule('* * * * *', () => { console.log('कार्य हर मिनट निष्पादित हो रहा है');});
// कार्य: प्रतिदिन सुबह 9:30 बजेcron.schedule('30 9 * * *', () => { console.log('9:30 बजे दैनिक कार्य');});
// कार्य: हर सोमवार सुबह 8:00 बजेcron.schedule('0 8 * * 1', () => { console.log('सोमवार, सुबह 8:00 — रिपोर्ट का समय');});
// सेकंड के साथ कार्य: हर 10 सेकंड मेंcron.schedule('*/10 * * * * *', () => { console.log('10 सेकंड बीत गए');});
// 5 सेकंड बाद कार्य रोकेंconst task = cron.schedule('*/1 * * * * *', () => { console.log('अनंत कार्य');});setTimeout(() => { task.stop(); console.log('कार्य रोक दिया गया');}, 5000);कब उपयोग करें
node-cron का उपयोग करें जब आपको Node.js एप्लिकेशन के अंदर एक निश्चित समय पर या निर्धारित आवृत्ति पर कोड निष्पादित करने की आवश्यकता हो। यह इसके लिए एकदम सही है:
- अस्थायी फ़ाइलों या लॉग की नियमित सफाई;
- शेड्यूल के अनुसार सूचनाएं या ईमेल भेजना;
- बाहरी API के साथ डेटा सिंक्रोनाइज़ेशन;
- बैकग्राउंड में रिपोर्ट जनरेट करना;
- सर्वर हेल्थ चेक या टेस्ट चलाना।
यह लाइब्रेरी उच्च-लोड वितरित सिस्टम के लिए उपयुक्त नहीं है (इसके लिए कतार-आधारित कार्य प्रणाली बेहतर है), लेकिन अधिकांश सामान्य परिदृश्यों के लिए यह एक इष्टतम समाधान है।
```