Bull Queue

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

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

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

Bull Queue for TypeScript: शक्तिशाली कार्य कतार

Bull Queue Node.js में कार्य कतारों (task queues) के प्रबंधन के लिए एक लोकप्रिय लाइब्रेरी है, जो TypeScript में लिखी गई है। यह Redis पर आधारित है और बैकग्राउंड कार्यों जैसे ईमेल भेजना, रिपोर्ट जनरेट करना, इमेज प्रोसेसिंग और अन्य ऑपरेशनों को संसाधित करने का एक विश्वसनीय तरीका प्रदान करती है जो एप्लिकेशन के मुख्य थ्रेड को ब्लॉक नहीं करना चाहिए। Bull Queue प्राथमिकताएं, विलंब, पुनः प्रयास और वेब इंटरफ़ेस के माध्यम से मॉनिटरिंग का समर्थन करती है।

Bull Queue की आवश्यकता क्यों है?

आधुनिक वेब एप्लिकेशन में अक्सर ऐसे कार्य उत्पन्न होते हैं जिनमें समय या संसाधनों की आवश्यकता होती है। उन्हें सिंक्रोनस रूप से निष्पादित करने से यूज़र इंटरफ़ेस की गति धीमी हो सकती है या टाइम-आउट भी हो सकता है। Bull Queue आपको ऐसे कार्यों को बैकग्राउंड में ले जाने की अनुमति देती है, उन्हें एसिंक्रोनस रूप से संसाधित करती है। यह एप्लिकेशन के प्रदर्शन, स्केलेबिलिटी और फॉल्ट टॉलरेंस में सुधार करता है। उदाहरण के लिए, उपयोगकर्ता पंजीकरण के समय, आप उपयोगकर्ता को प्रतीक्षा कराए बिना तुरंत कतार के माध्यम से एक स्वागत ईमेल भेज सकते हैं।

स्थापना (Installation)

Bull Queue स्थापित करने के लिए कमांड चलाएँ:

npm install bull

साथ ही Redis की आवश्यकता होगी। सुनिश्चित करें कि Redis स्थानीय रूप से चल रहा है या दूरस्थ रूप से उपलब्ध है। TypeScript के लिए, अतिरिक्त रूप से टाइप्स स्थापित करें:

npm install @types/bull

मुख्य कार्यक्षमताएँ

  • कतारें बनाना: विभिन्न सेटिंग्स के साथ आसानी से कतारें बनाएँ।
  • कार्य जोड़ना: डेटा और विकल्पों (प्राथमिकता, विलंब, प्रयास) के साथ कार्य जोड़ें।
  • हैंडलर: प्रत्येक कार्य को संसाधित करने के लिए फ़ंक्शन परिभाषित करें।
  • पुनः प्रयास: अनुकूलन योग्य रणनीति के साथ त्रुटियों पर स्वचालित पुनरावृत्ति।
  • मॉनिटरिंग: कतारों की स्थिति देखने के लिए अंतर्निहित वेब इंटरफ़ेस (bull-board पैकेज के माध्यम से)।

TypeScript में कोड उदाहरण

import Queue from 'bull';

// कतार बनाएँconst emailQueue = new Queue('email', { redis: { host: 'localhost', port: 6379 }});

// कार्य जोड़ेंemailQueue.add({ to: 'user@example.com', subject: 'नमस्ते!' }, { attempts: 3, delay: 5000 // 5 सेकंड का विलंब});

// कार्य हैंडलरemailQueue.process(async (job) => { console.log('ईमेल भेजा जा रहा है:', job.data.to); // यहाँ ईमेल भेजने का कोड await sendEmail(job.data.to, job.data.subject);});

// पूर्णता प्रबंधनemailQueue.on('completed', (job) => { console.log('कार्य पूर्ण हुआ:', job.id);});

emailQueue.on('failed', (job, err) => { console.error('त्रुटि:', err);});

कब उपयोग करें

Bull Queue निम्नलिखित के लिए आदर्श है:

  • ईमेल या SMS भेजना।
  • PDF या रिपोर्ट जनरेट करना।
  • अपलोड की गई फ़ाइलों (इमेज, वीडियो) को संसाधित करना।
  • आवधिक कार्य निष्पादित करना (cron कार्य)।
  • गति सीमा के साथ बाहरी API के साथ एकीकरण।

यदि आपका TypeScript प्रोजेक्ट बैकग्राउंड कार्यों के विश्वसनीय प्रसंस्करण की मांग करता है, तो Bull Queue अपनी सरलता, प्रदर्शन और Redis के साथ एकीकरण के कारण एक उत्कृष्ट विकल्प है।

अनुशंसाएँ