node-schedule क्या है?
node-schedule Node.js वातावरण में विलंबित और दोहराए जाने वाले कार्यों को शेड्यूल करने के लिए एक लोकप्रिय लाइब्रेरी है। यह JavaScript में लिखी गई है, लेकिन टाइप परिभाषाओं (DefinitelyTyped) की उपलब्धता के कारण TypeScript के साथ भी बढ़िया काम करती है। यह लाइब्रेरी आपको एक निश्चित समय पर, एक शेड्यूल (cron-जैसा सिंटैक्स) के अनुसार या निर्धारित अंतराल पर फ़ंक्शन चलाने की अनुमति देती है।
node-schedule की आवश्यकता क्यों है?
आधुनिक वेब एप्लिकेशन में अक्सर बैकग्राउंड ऑपरेशन करने की आवश्यकता होती है: कैश साफ़ करना, ईमेल न्यूज़लेटर भेजना, डेटाबेस का बैकअप लेना, बाहरी API से डेटा अपडेट करना या रिपोर्ट जनरेट करना। Node-schedule बाहरी सेवाओं (जैसे Linux में cron) के उपयोग के बिना इस समस्या को हल करता है - सब कुछ आपके TypeScript एप्लिकेशन के अंदर ही काम करता है।
स्थापना (Installation)
npm के माध्यम से लाइब्रेरी और टाइप्स स्थापित करें:
npm install node-schedulenpm install --save-dev @types/node-scheduleइसके बाद, आप इसे अपने TypeScript प्रोजेक्ट में आयात कर सकते हैं:
import * as schedule from 'node-schedule';मुख्य कार्यक्षमताएँ
- cron-स्ट्रिंग द्वारा शेड्यूलिंग — आप मिनट, घंटे, दिन, महीने और सप्ताह के दिन निर्धारित करते हैं।
- एक विशिष्ट तिथि पर शेड्यूलिंग — आप Date ऑब्जेक्ट या स्ट्रिंग पास करते हैं।
- अंतराल के साथ दोहराव — उदाहरण के लिए, हर 10 मिनट में।
- कार्य रद्द करना — आप शेड्यूल किए गए निष्पादन को रद्द कर सकते हैं।
- सक्रिय कार्यों की जाँच —
scheduledJobsविधि सभी सक्रिय कार्यों को लौटाती है।
TypeScript पर कोड उदाहरण
import * as schedule from 'node-schedule';
// एक कार्य जो हर मिनट (30वें सेकंड पर) निष्पादित होगाconst job = schedule.scheduleJob('30 * * * * *', () => { console.log('कार्य निष्पादित हुआ:', new Date().toLocaleString());});
// एक विशिष्ट तिथि पर कार्यconst date = new Date(Date.now() + 5000); // 5 सेकंड बादschedule.scheduleJob(date, () => { console.log('5 सेकंड बाद एक बार का कार्य');});
// हर 10 सेकंड में दोहरावconst intervalJob = schedule.scheduleJob('*/10 * * * * *', () => { console.log('हर 10 सेकंड');});
// 20 सेकंड बाद कार्य रद्द करनाsetTimeout(() => { job.cancel(); console.log('पहला कार्य रद्द कर दिया गया');}, 20000);
// सक्रिय कार्यों की जाँचconsole.log('सक्रिय कार्य:', Object.keys(schedule.scheduledJobs));node-schedule का उपयोग कब करें
- जब आपको बाहरी cron के बिना Node.js एप्लिकेशन के अंदर शेड्यूल पर कार्य निष्पादित करने की आवश्यकता हो।
- सरल बैकग्राउंड कार्यों के लिए: लॉग साफ़ करना, ईमेल भेजना, कैश अपडेट करना।
- जब cron-सिंटैक्स के लचीलेपन की आवश्यकता हो (उदाहरण के लिए, महीने के हर पहले दिन सुबह 3:00 बजे)।
- यदि आप ऑपरेटिंग सिस्टम पर निर्भर नहीं रहना चाहते (क्रॉस-प्लेटफ़ॉर्म समर्थन)।
उच्च-लोड वितरित सिस्टम के लिए node-schedule का उपयोग न करें - ऐसे मामलों में कार्य कतारें (Bull, RabbitMQ) या क्लाउड शेड्यूलर (AWS CloudWatch, GCP Cloud Scheduler) बेहतर उपयुक्त होते हैं।
यह लाइब्रेरी सरल, हल्की है और TypeScript पर छोटे और मध्यम आकार के प्रोजेक्ट्स के लिए आदर्श है।
```