TypeScript में कार्य शेड्यूलर: node-schedule लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

node-schedule लाइब्रेरी: TypeScript पर लचीला कार्य शेड्यूलर



आधुनिक वेब डेवलपमेंट में, निर्धारित समय या शेड्यूल पर विशिष्ट क्रियाएँ करने की आवश्यकता अक्सर उत्पन्न होती है। Node.js और TypeScript इकोसिस्टम के लिए कई समाधान मौजूद हैं, लेकिन node-schedule अपनी लचीलापन और सरलता के लिए अलग पहचान रखता है। यह लाइब्रेरी आपको सटीक तिथि पर एक बार के कार्यों के साथ-साथ cron-एक्सप्रेशन या मानव-पठनीय अंतरालों का उपयोग करके आवर्ती कार्य बनाने की अनुमति देती है।



node-schedule की मुख्य विशेषताएँ



  • सटीक निष्पादन समय – किसी विशिष्ट समय (तिथि + समय) पर कार्य प्रारंभ करना
  • Cron-एक्सप्रेशन – आवधिक कार्यों के लिए क्लासिक सिंटैक्स (हर मिनट, हर घंटे, आदि)
  • आवर्ती नियम – RecurrenceRule ऑब्जेक्ट के साथ पुनरावृत्तियों का लचीला कॉन्फ़िगरेशन
  • रद्द करना और रोकना – सक्रिय कार्यों का प्रबंधन
  • समय क्षेत्रों का समर्थन – स्थानीय समय के साथ कार्य करना


स्थापना और कनेक्शन



आरंभ करने के लिए, npm के माध्यम से पैकेज स्थापित करें:



npm install node-schedulenpm install @types/node-schedule --save-dev


TypeScript फ़ाइल में आयात:



import * as schedule from 'node-schedule';


उदाहरण 1: सटीक तिथि पर कार्य



एक कार्य बनाएँ जो 31 दिसंबर 2024 को 23:59:59 पर निष्पादित होगा:



const date = new Date(2024, 11, 31, 23, 59, 59);

const job = schedule.scheduleJob(date, () => { console.log('🎉 नया साल 2025 मुबारक हो!');});

// कार्य रद्द करना (यदि आवश्यक हो)// job.cancel();


उदाहरण 2: cron-एक्सप्रेशन के साथ आवधिक कार्य



हर 5 मिनट में कार्य प्रारंभ करें:



const job = schedule.scheduleJob('*/5 * * * *', () => {    console.log('हर 5 मिनट में कार्य निष्पादित कर रहा हूँ');});


cron-एक्सप्रेशन का प्रारूप: सेकंड मिनट घंटा महीने_का_दिन महीना सप्ताह_का_दिन। node-schedule में सभी 6 फ़ील्ड समर्थित हैं (क्लासिक cron के 5 फ़ील्ड के विपरीत)।



उदाहरण 3: RecurrenceRule का उपयोग



एक कार्य बनाएँ जो प्रत्येक मंगलवार और गुरुवार को सुबह 10:30 बजे निष्पादित होता है:



const rule = new schedule.RecurrenceRule();rule.dayOfWeek = [2, 4]; // मंगलवार और गुरुवारrule.hour = 10;rule.minute = 30;

const job = schedule.scheduleJob(rule, () => { console.log('साप्ताहिक रिपोर्ट भेज रहा हूँ');});


RecurrenceRule निम्नलिखित फ़ील्ड का समर्थन करता है:



  • year – वर्ष या वर्षों की सरणी
  • month – महीना (0-11) या सरणी
  • date – महीने का दिन (1-31)
  • dayOfWeek – सप्ताह का दिन (0-6, जहाँ 0 रविवार है)
  • hour – घंटा (0-23)
  • minute – मिनट (0-59)
  • second – सेकंड (0-59)


उदाहरण 4: संयुक्त नियम



एक कार्य जो प्रत्येक महीने के अंतिम दिन 23:59 पर निष्पादित होता है:



const rule = new schedule.RecurrenceRule();rule.month = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; // सभी महीनेrule.date = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // प्रत्येक महीने के अंतिम दिनrule.hour = 23;rule.minute = 59;rule.second = 59;

const job = schedule.scheduleJob(rule, () => { console.log('महीने के अंतिम दिन निष्पादन');});


कार्य प्रबंधन



लाइब्रेरी कार्यों पर पूर्ण नियंत्रण के लिए विधियाँ प्रदान करती है:



// कार्य बनानाconst job = schedule.scheduleJob('*/10 * * * * *', () => {    console.log('हर 10 सेकंड');});

// कार्य रद्द करनाjob.cancel();

// जाँचना कि कार्य सक्रिय है या नहींconsole.log(job.pending()); // true या false

// सभी कार्य रद्द करनाschedule.gracefulShutdown

अनुशंसाएँ