Celery दस्तावेज़
सेलेरी दस्तावेज़: शुरुआती के लिए एक व्यापक गाइड
सेलेरी एक शक्तिशाली, वितरित कार्य कतार (distributed task queue) है, जो पायथन में लिखा गया है। यह जटिल, समय लेने वाले कार्यों को एसिंक्रोनस रूप से (asynchronously) चलाने के लिए प्रयोग किया जाता है, जिससे मुख्य एप्लिकेशन थ्रेड ब्लॉक न हो। यह विशेष रूप से वेब एप्लिकेशन के लिए उपयोगी है, जहां उपयोगकर्ता इंटरफ़ेस को प्रतिक्रियाशील बनाए रखना महत्वपूर्ण है। यह लेख शुरुआती लोगों के लिए सेलेरी की मूल अवधारणाओं, स्थापना, कॉन्फ़िगरेशन और उपयोग को विस्तार से समझाता है।
सेलेरी क्या है?
सेलेरी एक कार्य कतार है, लेकिन यह सिर्फ एक कतार से कहीं अधिक है। यह एक संपूर्ण वितरित प्रणाली है, जिसमें कई घटक शामिल हैं जो एक साथ काम करते हैं:
- टास्क (Task): सेलेरी में, एक टास्क एक सिंगल यूनिट ऑफ वर्क होता है, जैसे कि ईमेल भेजना, इमेज प्रोसेसिंग करना, या डेटाबेस अपडेट करना।
- वर्कर (Worker): वर्कर सेलेरी प्रक्रियाएं हैं जो कतार से टास्क लेती हैं और उन्हें एक्जीक्यूट करती हैं। आप कई वर्कर चला सकते हैं, जो विभिन्न मशीनों पर भी हो सकते हैं।
- ब्रोकर (Broker): ब्रोकर एक मैसेजिंग सिस्टम है जो टास्क को वर्कर तक पहुंचाता है। सेलेरी कई प्रकार के ब्रोकर का समर्थन करता है, जैसे कि RabbitMQ, Redis, और Amazon SQS।
- बैकएंड (Backend): बैकएंड का उपयोग टास्क के परिणामों को स्टोर करने के लिए किया जाता है। सेलेरी कई प्रकार के बैकएंड का समर्थन करता है, जैसे कि Redis, MongoDB, और SQLAlchemy।
सेलेरी क्यों उपयोगी है?
सेलेरी कई कारणों से उपयोगी है:
- एसिंक्रोनस प्रोसेसिंग: सेलेरी आपको समय लेने वाले कार्यों को एसिंक्रोनस रूप से चलाने की अनुमति देता है, जिससे आपका एप्लिकेशन अधिक प्रतिक्रियाशील रहता है।
- स्केलेबिलिटी: आप सेलेरी के साथ आसानी से अपने एप्लिकेशन को स्केल कर सकते हैं, क्योंकि आप अधिक वर्कर जोड़ सकते हैं।
- विश्वसनीयता: सेलेरी यह सुनिश्चित करता है कि आपके कार्य निष्पादित किए जाएं, भले ही वर्कर क्रैश हो जाए।
- लचीलापन: सेलेरी कई प्रकार के ब्रोकर और बैकएंड का समर्थन करता है, जिससे आप अपनी आवश्यकताओं के अनुसार सिस्टम को कॉन्फ़िगर कर सकते हैं।
- सरलता: सेलेरी का उपयोग करना अपेक्षाकृत आसान है, खासकर यदि आप पायथन से परिचित हैं।
सेलेरी की स्थापना
सेलेरी स्थापित करने के लिए, आपको पहले एक ब्रोकर और एक बैकएंड चुनना होगा। इस उदाहरण में, हम Redis को ब्रोकर और बैकएंड दोनों के रूप में उपयोग करेंगे।
1. Redis स्थापित करें: अपने ऑपरेटिंग सिस्टम के लिए उपयुक्त पैकेज मैनेजर का उपयोग करके Redis स्थापित करें। उदाहरण के लिए, Ubuntu पर:
```bash sudo apt-get update sudo apt-get install redis-server ```
2. सेलेरी स्थापित करें: pip का उपयोग करके सेलेरी स्थापित करें:
```bash pip install celery ```
सेलेरी को कॉन्फ़िगर करना
सेलेरी को कॉन्फ़िगर करने के लिए, आपको एक सेलेरी कॉन्फ़िगरेशन फ़ाइल बनानी होगी। यह फ़ाइल आपके सेलेरी एप्लिकेशन के लिए सेटिंग्स को परिभाषित करती है।
उदाहरण के लिए, `celeryconfig.py` नामक एक फ़ाइल बनाएं:
```python broker_url = 'redis://localhost:6379/0' result_backend = 'redis://localhost:6379/0' task_serializer = 'json' result_serializer = 'json' accept_content = ['json'] timezone = 'UTC' enable_utc = True ```
यहाँ कुछ महत्वपूर्ण सेटिंग्स हैं:
- broker_url: ब्रोकर का URL।
- result_backend: बैकएंड का URL।
- task_serializer: टास्क को सीरियललाइज़ करने के लिए उपयोग किया जाने वाला सीरियललाइज़र।
- result_serializer: परिणामों को सीरियललाइज़ करने के लिए उपयोग किया जाने वाला सीरियललाइज़र।
- accept_content: स्वीकार्य सामग्री प्रारूपों की सूची।
- timezone: टाइमज़ोन।
- enable_utc: UTC समय का उपयोग करने के लिए सक्षम करें।
सेलेरी का उपयोग करना
सेलेरी का उपयोग करने के लिए, आपको निम्नलिखित चरणों का पालन करना होगा:
1. सेलेरी एप्लिकेशन बनाएं:
```python from celery import Celery
app = Celery('my_app', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
@app.task def add(x, y): return x + y ```
इस कोड में, हमने एक सेलेरी एप्लिकेशन बनाया है और `add` नामक एक टास्क को परिभाषित किया है। `@app.task` डेकोरेटर इस फ़ंक्शन को सेलेरी टास्क में बदल देता है।
2. टास्क को कॉल करें:
```python result = add.delay(4, 4) print(result.get()) # Output: 8 ```
`add.delay(4, 4)` टास्क को एसिंक्रोनस रूप से कॉल करता है। `result` ऑब्जेक्ट आपको टास्क की स्थिति और परिणाम तक पहुंचने की अनुमति देता है। `result.get()` विधि टास्क के परिणाम को ब्लॉक करके लौटाती है।
3. वर्कर चलाएं:
टर्मिनल में, निम्नलिखित कमांड चलाएं:
```bash celery -A my_app worker -l info ```
यह सेलेरी वर्कर को शुरू करेगा, जो कतार से टास्क लेगा और उन्हें एक्जीक्यूट करेगा। `-A my_app` विकल्प सेलेरी एप्लिकेशन को निर्दिष्ट करता है। `-l info` विकल्प लॉगिंग स्तर को सूचना पर सेट करता है।
सेलेरी के उन्नत विषय
- कार्य कतारों (Queues): सेलेरी आपको कई कार्य कतारों को परिभाषित करने की अनुमति देता है, जिसका उपयोग आप कार्यों को प्राथमिकता देने या विभिन्न प्रकार के कार्यों को अलग करने के लिए कर सकते हैं। कार्य कतार रणनीति का उपयोग करके आप अपने कार्यों को व्यवस्थित कर सकते हैं।
- शेड्यूलिंग (Scheduling): सेलेरी आपको कार्यों को निश्चित समय पर या आवर्ती रूप से शेड्यूल करने की अनुमति देता है। क्रोन जॉब्स का उपयोग करके आप समय-आधारित कार्यों को शेड्यूल कर सकते हैं।
- समूह (Groups): सेलेरी आपको कार्यों के समूहों को चलाने की अनुमति देता है। कार्य समूह आपको एक साथ कई कार्यों को निष्पादित करने की अनुमति देते हैं।
- चेन (Chains): सेलेरी आपको कार्यों की एक श्रृंखला चलाने की अनुमति देता है, जहां प्रत्येक कार्य पिछले कार्य के परिणाम पर निर्भर करता है। कार्य श्रृंखला आपको जटिल वर्कफ़्लो बनाने की अनुमति देती हैं।
- कॉर्दो (Chord): सेलेरी आपको कार्यों के एक सेट को चलाने की अनुमति देता है और फिर उन सभी के परिणाम प्राप्त होने पर एक अंतिम कार्य को चलाता है। कार्यों का समन्वय आपके वर्कफ़्लो को अधिक कुशल बनाता है।
- बीट (Beat): सेलेरी बीट एक शेड्यूलर है जो समय-आधारित कार्यों को चलाता है। बीट कॉन्फ़िगरेशन आपके शेड्यूलर को अनुकूलित करने में मदद करता है।
- मॉनिटरिंग (Monitoring): सेलेरी को मॉनिटर करने के लिए कई उपकरण उपलब्ध हैं, जैसे कि Flower। सेलेरी मॉनिटरिंग उपकरण आपको अपने सेलेरी क्लस्टर की स्थिति पर नज़र रखने में मदद करते हैं।
संबंधित विषय
सेलेरी के अलावा, निम्नलिखित विषयों को समझना उपयोगी है:
- मैसेज क्यूइंग: मैसेज क्यूइंग की मूल बातें।
- एसिंक्रोनस प्रोग्रामिंग: एसिंक्रोनस प्रोग्रामिंग के सिद्धांत।
- डिस्ट्रीब्यूटेड सिस्टम: डिस्ट्रीब्यूटेड सिस्टम की अवधारणाएं।
- वेब फ्रेमवर्क (Django, Flask): सेलेरी को वेब फ्रेमवर्क के साथ एकीकृत करना।
- डेटाबेस (Redis, MongoDB, PostgreSQL): डेटाबेस का उपयोग बैकएंड के रूप में करना।
- तकनीकी विश्लेषण: कार्य प्रदर्शन को अनुकूलित करने के लिए।
- वॉल्यूम विश्लेषण: कार्य भार को समझने के लिए।
- नेटवर्किंग: नेटवर्क कॉन्फ़िगरेशन और सुरक्षा।
- Docker: सेलेरी को कंटेनराइज़ करना।
- Kubernetes: सेलेरी को ऑर्केस्ट्रेट करना।
- लॉगिंग: सेलेरी एप्लिकेशन को लॉग करना।
- डीबगिंग: सेलेरी एप्लिकेशन को डीबग करना।
- टेस्टिंग: सेलेरी कार्यों का परीक्षण करना।
- सुरक्षा: सेलेरी एप्लिकेशन को सुरक्षित करना।
- प्रदर्शन अनुकूलन: सेलेरी एप्लिकेशन के प्रदर्शन को अनुकूलित करना।
निष्कर्ष
सेलेरी एक शक्तिशाली और लचीला उपकरण है जो आपको जटिल, समय लेने वाले कार्यों को एसिंक्रोनस रूप से चलाने की अनुमति देता है। यह वेब एप्लिकेशन के लिए विशेष रूप से उपयोगी है, जहां उपयोगकर्ता इंटरफ़ेस को प्रतिक्रियाशील बनाए रखना महत्वपूर्ण है। इस लेख में, हमने सेलेरी की मूल अवधारणाओं, स्थापना, कॉन्फ़िगरेशन और उपयोग को विस्तार से समझाया है। उम्मीद है कि यह लेख आपको सेलेरी के साथ शुरुआत करने में मदद करेगा।
अभी ट्रेडिंग शुरू करें
IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)
हमारे समुदाय में शामिल हों
हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री