Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

QStash:सर्वर रहित संदेश कतार और शेड्यूलर

<पी> हमें QStash 🔥🔥🔥

की घोषणा करते हुए गर्व और उत्साहित महसूस हो रहा है <पी> औपचारिक रूप से, QStash एक संदेश कतार और कार्य शेड्यूलर है जिसे सर्वर रहित रनटाइम के लिए डिज़ाइन किया गया है। अनौपचारिक रूप से, QStash आपके सर्वर रहित कार्यों के लिए एक गोंद है।

<पी> ऐसी धारणा थी कि सर्वर रहित केवल साधारण कार्यों के लिए ही अच्छा है। अब और नहीं। लोग सर्वर रहित स्टैक के साथ शक्तिशाली सिस्टम बनाते हैं। शक्तिशाली सिस्टम कई घटकों से बने होते हैं। उन घटकों के बीच संचार एक बड़ी इंजीनियरिंग समस्या है। इस समस्या के लिए पहले से ही बेहतरीन समाधान मौजूद हैं। लेकिन हमारा मानना ​​है कि मौजूदा समाधान सर्वर रहित स्थान में फिट नहीं बैठते हैं। या तो वे बहुत जटिल हैं या स्टेटलेस रनटाइम के साथ काम करने के लिए डिज़ाइन नहीं किए गए हैं। इसलिए हम एक समाधान चाहते हैं जो (है):

  • सर्वर रहित और एज सहित कहीं भी काम करता है।
  • मैसेजिंग एक ऐसी सेवा के रूप में, जिसमें उपयोगकर्ताओं के लिए कोई बैकएंड नहीं है।
  • हल्का, समझने में आसान, सीखने के लिए कुछ भी नहीं चाहिए।
  • कीमत शून्य हो गई।
<पी> आइए वास्तविक दुनिया के उदाहरण के बारे में बात करें। हमारे पास एक ई-कॉमर्स ऐप है और हम प्रत्येक खरीदारी के बाद एक सूचनात्मक ईमेल भेजना चाहते हैं। हमारे पास नई खरीदारी (नई खरीद) के लिए एक सेवा (एक एपीआई रूट) और ईमेल और सूचनाएं भेजने (सेंडईमेल) के लिए दूसरी सेवा है। हम नई खरीद सेवा से सेंडईमेल सेवा को कॉल कर सकते हैं। लेकिन अगर कॉल विफल हो जाए तो क्या होगा? क्या हमें प्रतिक्रिया की प्रतीक्षा करनी चाहिए और पुनः प्रयास करना चाहिए? क्या होगा यदि बहुत अधिक कॉल सेंडईमेल सेवा बाधित हो जाती है और सेवा समय पर प्रतिक्रिया नहीं देती है? आपको अपनी नई खरीद सेवा में इन सभी मामलों को संभालने की आवश्यकता है। इसके अलावा, जब आप सेंडईमेल सेवा का अनुबंध बदलते हैं; आपको अपनी नई खरीद सेवा भी अपडेट करनी होगी।

<पी> यदि आप उपरोक्त उदाहरण में QStash का उपयोग करते हैं, तो आप बस newPurchase सेवा से QStash को एक अनुरोध भेजते हैं। QStash अनुरोध को कतारबद्ध करेगा और सेंडईमेल सेवा को कॉल करेगा। यदि सेवा प्रतिक्रिया नहीं देती है, तो QStash बैकऑफ़ रणनीति के साथ पुनः प्रयास करेगा। सेंडईमेल सेवा की विलंबता नई खरीद सेवा को प्रभावित नहीं करेगी, क्योंकि यह सेंडईमेल सेवा से प्रतिक्रिया की प्रतीक्षा नहीं करेगी। QStash नई खरीद और ईमेल भेजने वाली सेवाओं को अलग करता है। जब तक आप संदेश प्रारूप को संगत बनाए रखते हैं, तब तक आप दोनों सेवाओं को स्वतंत्र रूप से अपडेट कर सकते हैं।

<पी> QStash के साथ, आप delays जोड़ सकते हैं अनुरोधों के लिए. ग्राहक को समीक्षा जोड़ने की याद दिलाने के लिए शिपमेंट के 3 दिन बाद एक ईमेल भेजें। आप कार्यों को शेड्यूल भी कर सकते हैं. आप अनुरोधों को CRON अभिव्यक्ति के साथ भेज सकते हैं, इसलिए इसे बार-बार चलाया जाएगा।

<पी> QStash:सर्वर रहित संदेश कतार और शेड्यूलर

<पी> आइए अब QStash की विशेषताओं पर संक्षेप में नज़र डालें:

कहीं भी काम करता है

<पी> पारंपरिक पुल-आधारित मैसेजिंग के बजाय जहां आपको कतार से उपभोग करने के लिए एक लंबी चलने वाली प्रक्रिया की आवश्यकता होती है, QStash संदेशों को आपके एपीआई पर भेजता है। यह आपको उन्हें संसाधित करने के लिए सर्वर रहित फ़ंक्शंस का उपयोग करने की अनुमति देता है। हम आपके लिए पुनः प्रयास, कस्टम विलंब और शेड्यूलिंग संभालते हैं। आपको बस एक सार्वजनिक रूप से पहुंच योग्य HTTP API की आवश्यकता है।

कीमत स्केल शून्य पर

<पी> QStash की कीमत प्रति 100,000 अनुरोधों पर $1 है। अच्छी बात यह है कि इसमें कोई न्यूनतम या निश्चित भुगतान नहीं है। आप केवल उसी के लिए भुगतान करते हैं जिसका आप उपयोग करते हैं। यदि आप लाखों अनुरोधों की अपेक्षा करते हैं, तो हम आपको प्रति अनुरोध कम कीमतों के साथ एक उद्यम योजना की पेशकश करेंगे।

अपडेट - सितंबर 2022
<पी> हमने QStash का मूल्य घटाकर $1 प्रति 100K अनुरोध कर दिया है। नवीनतम मूल्य निर्धारण जानकारी के लिए QStashPriceing पृष्ठ देखें।

अंतिम बिंदु और विषय

<पी> आप QStash को संदेश के साथ एक समापन बिंदु शामिल करते हैं। तो QStash इस समापन बिंदु पर संदेश भेजता है। साथ ही, आप एक विषय को परिभाषित कर सकते हैं जो एक या अधिक समापन बिंदुओं को एक ही नामस्थान में समूहित करने की अनुमति देता है। विषय अमूर्तता के लिए धन्यवाद, आप बैकएंड कार्यान्वयन को छुए बिना समापन बिंदुओं को संशोधित कर सकते हैं। नीचे विषय user-apis पर अनुरोध भेजा जाता है . संदेश की एक प्रति प्रत्येक समापन बिंदु पर पहुंचा दी जाएगी।

अंतिम बिंदु पर भेजा जा रहा है
curl -XPOST \
 "https://qstash.upstash.io/v1/publish/https://example.com" \
 -H "Authorization: Bearer XXX" \
 -H "Content-Type: application/json" \
 -d "{ \"hello\" : \"world\" }"
किसी विषय पर भेजा जा रहा है
curl -XPOST \
 "https://qstash.upstash.io/v1/publish/user-apis" \
 -H "Authorization: Bearer XXX" \
 -H "Content-Type: application/json" \
 -d "{ \"hello\" : \"world\" }"

शेड्यूल

<पी> QStash आपके कार्य को एक शेड्यूल में भेजना दोहरा सकता है। हेडर अपस्टैश-क्रॉन के मान के रूप में एक सीआरओएन अभिव्यक्ति सेट करें। नीचे दिया गया उदाहरण QStash को हर मिनट एपीआई को कॉल करने का निर्देश देता है।

curl -XPOST \
 'https://qstash.upstash.io/v1/publish/https://example.com'
 -H 'Authorization: Bearer XXX' \
 -H "Content-type: application/json" \
 -H "Upstash-Cron: * * * * *" \
 -d '{ "hello": "world" }' \

अधिक

  • पुनः प्रयास करें:यदि आपका एपीआई सफलता स्थिति कोड के साथ प्रतिक्रिया नहीं देता है, तो QStash यह सुनिश्चित करने के लिए अनुरोध का पुनः प्रयास करता है कि प्रत्येक संदेश वितरित किया जाएगा।
  • विलंब:किसी संदेश की डिलीवरी में 90 दिनों तक की देरी।
  • डीडुप्लीकेशन:आप डीडुप्लीकेशन-आईडी या स्वचालित सामग्री आधारित डीडुप्लीकेशन का उपयोग करके डुप्लिकेट संदेशों को रोक सकते हैं।
  • अनुरोध पर हस्ताक्षर:आपकी एपीआई सार्वजनिक होनी चाहिए। आप हस्ताक्षर सत्यापित करके प्रत्येक आने वाले अनुरोध की प्रामाणिकता सत्यापित कर सकते हैं।
  • JS/TS SDK:REST API सरल है, लेकिन यदि आप JS/TS पर निर्माण कर रहे हैं, तो हमारा SDK और भी सरल है।

समापन शब्द

<पी> QStash का लक्ष्य सर्वर रहित दुनिया के लिए सर्वोत्तम संदेश सेवा प्रदान करना है। यह हमारी पहली रिलीज है, इसलिए हमें आपकी प्रतिक्रिया और योगदान की सख्त जरूरत है। QStash दस्तावेज़ की जाँच करें। अपनी टिप्पणियों और सुझावों के लिए डिस्कॉर्ड और ट्विटर पर हमसे संपर्क करें..


  1. जावास्क्रिप्ट फ़ाइल को गतिशील रूप से कैसे लोड करें? जावास्क्रिप्ट फ़ाइल को गतिशील रूप से कैसे लोड करें?

    एक JavaScript फ़ाइल को गतिशील रूप से लोड करने के लिए निम्नलिखित कोड है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>

  1. बैकअप पोस्ट करता है और उन्हें ObjectRocket पर कैसे पुनर्स्थापित करता है बैकअप पोस्ट करता है और उन्हें ObjectRocket पर कैसे पुनर्स्थापित करता है

    मूल रूप से 6 फरवरी, 2020 को ObjectRocket.com/blog पर प्रकाशित हुआ नियमित बैकअप और उन्हें पुनर्स्थापित करने की क्षमता डेटाबेस सिस्टम प्रशासन का एक महत्वपूर्ण हिस्सा है। ऑब्जेक्टरॉकेट, एक रैकस्पेस टेक्नोलॉजी कंपनी में, हम आपको हमारे सभी डेटाबेस उत्पादों पर डिफ़ॉल्ट रूप से दो सप्ताह के प्रतिधारण के स

  1. टिंकर में चाइल्ड विंडो कैसे बनाएं और माता-पिता के साथ संवाद कैसे करें? टिंकर में चाइल्ड विंडो कैसे बनाएं और माता-पिता के साथ संवाद कैसे करें?

    अन्य पायथन पुस्तकालयों के विपरीत, टिंकर में कई विशेषताएं हैं जिनका उपयोग एक पूर्ण एप्लिकेशन बनाने के लिए किया जाता है। यह विंडोज़ पर ऑपरेशन को संसाधित करने के लिए एकाधिक विंडो संचालन और थ्रेडिंग का समर्थन करता है। थ्रेड के बाद, हम एक एप्लिकेशन बनाएंगे जो डेटा को रूट विंडो से खींचकर चाइल्ड विंडो में