কম্পিউটার টিউটোরিয়াল

QStash:সার্ভারহীন বার্তা সারি এবং সময়সূচী

আমরা QStash 🔥🔥🔥

ঘোষণা করতে পেরে গর্বিত এবং উত্তেজিত

আনুষ্ঠানিকভাবে, QStash হল একটি বার্তা সারি এবং টাস্ক শিডিউলার যা সার্ভারহীন রানটাইমের জন্য ডিজাইন করা হয়েছে। অনানুষ্ঠানিকভাবে, QStash হল আপনার সার্ভারহীন ফাংশনগুলির জন্য একটি আঠা।

সার্ভারহীন একটি উপলব্ধি ছিল শুধুমাত্র সহজ কাজের জন্য ভাল. আর নেই। লোকেরা সার্ভারহীন স্ট্যাকের সাথে শক্তিশালী সিস্টেম তৈরি করে। শক্তিশালী সিস্টেম একাধিক উপাদান গঠিত হয়. এই উপাদানগুলির মধ্যে যোগাযোগ একটি বড় প্রকৌশল সমস্যা। এই সমস্যার জন্য ইতিমধ্যে মহান সমাধান আছে. কিন্তু আমরা মনে করি বিদ্যমান সমাধানগুলি সার্ভারহীন স্থানে মাপসই করে না। হয় সেগুলি খুব জটিল বা স্টেটলেস রানটাইমগুলির সাথে কাজ করার জন্য ডিজাইন করা হয়নি৷ তাই আমরা একটি সমাধান চাই যা (হলো):

  • সার্ভারহীন এবং প্রান্ত সহ যেকোন জায়গায় কাজ করে।
  • ব্যবহারকারীদের চালানোর জন্য ব্যাকএন্ড ছাড়াই একটি পরিষেবা হিসাবে বার্তাপ্রেরণ৷
  • হালকা, সহজে বোঝা, শেখার দরকার নেই।
  • মূল্য শূন্যে চলে আসে।

একটি বাস্তব বিশ্বের উদাহরণ সম্পর্কে কথা বলা যাক। আমাদের একটি ই-কমার্স অ্যাপ আছে এবং আমরা প্রতিটি কেনাকাটার পরে একটি তথ্যমূলক ইমেল পাঠাতে চাই। আমাদের কাছে নতুন কেনাকাটার (নতুন ক্রয়) জন্য একটি পরিষেবা (একটি API রুট) এবং ইমেল এবং বিজ্ঞপ্তি পাঠানোর জন্য একটি দ্বিতীয় পরিষেবা রয়েছে (সেন্ড ইমেইল)৷ আমরা newPurchase পরিষেবা থেকে sendEmail পরিষেবাতে কল করতে পারি৷ কিন্তু কল ব্যর্থ হলে কি হবে? আমাদের কি প্রতিক্রিয়ার জন্য অপেক্ষা করা উচিত এবং পুনরায় চেষ্টা করা উচিত? যদি অনেক বেশি কল সেন্ডইমেল পরিষেবাকে ভিড় করে এবং পরিষেবা সময়মতো সাড়া না দেয় তাহলে কী হবে? আপনাকে আপনার নতুন ক্রয় পরিষেবাতে এই সমস্ত ক্ষেত্রে পরিচালনা করতে হবে৷ তাছাড়া, আপনি যখন sendEmail পরিষেবার চুক্তি পরিবর্তন করেন; আপনাকে আপনার নতুন ক্রয় পরিষেবাও আপডেট করতে হবে৷

আপনি যদি উপরের উদাহরণে QStash ব্যবহার করেন, আপনি কেবল নতুন ক্রয় পরিষেবা থেকে QStash-এ একটি অনুরোধ পাঠান। QStash অনুরোধটি সারিবদ্ধ করবে এবং sendEmail পরিষেবাতে কল করবে। পরিষেবাটি সাড়া না দিলে, QStash একটি ব্যাকঅফ কৌশল নিয়ে পুনরায় চেষ্টা করবে। sendEmail পরিষেবার লেটেন্সি নতুন ক্রয় পরিষেবাকে প্রভাবিত করবে না, কারণ এটি sendEmail পরিষেবা থেকে প্রতিক্রিয়ার জন্য অপেক্ষা করবে না। QStash নতুন ক্রয় এবং ইমেল পরিষেবাগুলিকে জোড়া দেয়। যতক্ষণ পর্যন্ত আপনি বার্তা বিন্যাস সামঞ্জস্যপূর্ণ রাখেন ততক্ষণ আপনি উভয় পরিষেবাই স্বাধীনভাবে আপডেট করতে পারেন৷

QStash এর সাথে, আপনি delays যোগ করতে পারেন অনুরোধ করতে. একটি রিভিউ যোগ করার জন্য গ্রাহককে মনে করিয়ে দিতে চালানের 3 দিন পরে একটি ইমেল পাঠান। এছাড়াও আপনি কাজ শিডিউল করতে পারেন. আপনি একটি CRON এক্সপ্রেশন সহ অনুরোধগুলি পাঠাতে পারেন, তাই এটি পুনরাবৃত্তিমূলকভাবে চালানো হবে৷

QStash:সার্ভারহীন বার্তা সারি এবং সময়সূচী

এখন সংক্ষেপে QStash এর বৈশিষ্ট্যগুলি দেখুন:

যেকোন জায়গায় কাজ করে

প্রথাগত পুল-ভিত্তিক মেসেজিংয়ের পরিবর্তে যেখানে আপনাকে সারি থেকে ব্যবহার করার জন্য একটি দীর্ঘ-চলমান প্রক্রিয়া প্রয়োজন, QStash আপনার API-এ বার্তাগুলিকে ঠেলে দেয়। এটি আপনাকে তাদের প্রক্রিয়া করার জন্য সার্ভারহীন ফাংশন ব্যবহার করতে দেয়। আমরা আপনার জন্য পুনরায় চেষ্টা, কাস্টম বিলম্ব এবং সময়সূচী পরিচালনা করি। আপনার যা দরকার তা হল একটি সর্বজনীনভাবে অ্যাক্সেসযোগ্য HTTP API৷

মূল্যের স্কেল শূন্য

QStash মূল্য প্রতি 100.000 অনুরোধের জন্য $1। ভাল জিনিস হল কোন ন্যূনতম বা নির্দিষ্ট পেমেন্ট নেই। আপনি যা ব্যবহার করেন তার জন্য আপনি শুধুমাত্র অর্থ প্রদান করেন। আপনি যদি লক্ষ লক্ষ অনুরোধ আশা করেন, আমরা আপনাকে অনুরোধ প্রতি কম দাম সহ একটি এন্টারপ্রাইজ প্ল্যান অফার করব৷

আপডেট - সেপ্টেম্বর 2022

আমরা প্রতি 100K অনুরোধে QStash মূল্য $1 কমিয়েছি। সর্বশেষ মূল্যের তথ্যের জন্য QStashPricing পৃষ্ঠা দেখুন।

শেষ পয়েন্ট এবং বিষয়

আপনি 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 একটি সময়সূচীতে আপনার টাস্ক পাঠানোর পুনরাবৃত্তি করতে পারে। শিরোনাম Upstash-Cron-এর মান হিসাবে একটি CRON অভিব্যক্তি সেট করুন। নিচের উদাহরণটি QStash-কে প্রতি মিনিটে API-কে কল করার নির্দেশ দেয়।

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" }' \

আরো

  • পুনরায় চেষ্টা করুন:যদি আপনার API একটি সফল স্ট্যাটাস কোডের সাথে সাড়া না দেয়, তবে QStash প্রতিটি বার্তা বিতরণ করা হবে তা নিশ্চিত করার জন্য অনুরোধটি পুনরায় চেষ্টা করে।
  • বিলম্ব:90 দিন পর্যন্ত একটি বার্তা সরবরাহ করতে বিলম্ব করুন৷
  • ডিডুপ্লিকেশন:আপনি ডিডুপ্লিকেশন-আইডি বা স্বয়ংক্রিয় বিষয়বস্তু ভিত্তিক ডিডুপ্লিকেশন ব্যবহার করে ডুপ্লিকেট বার্তা প্রতিরোধ করতে পারেন।
  • স্বাক্ষর করার অনুরোধ:আপনার API গুলি অবশ্যই সর্বজনীন হতে হবে৷ আপনি স্বাক্ষর যাচাই করে প্রতিটি আগত অনুরোধের সত্যতা যাচাই করতে পারেন।
  • JS/TS SDK:REST API সহজ, কিন্তু আপনি যদি JS/TS-এ তৈরি করেন, তাহলে আমাদের SDK আরও সহজ৷

ক্লোজিং শব্দ

QStash-এর লক্ষ্য সার্ভারহীন বিশ্বের জন্য সেরা মেসেজিং পরিষেবা প্রদান করা। এটি আমাদের প্রথম প্রকাশ, তাই আমাদের দৃঢ়ভাবে আপনার প্রতিক্রিয়া এবং অবদান প্রয়োজন। QStash ডকুমেন্টেশন পরীক্ষা করুন। আপনার মন্তব্য এবং পরামর্শের জন্য ডিসকর্ড এবং টুইটারে আমাদের সাথে যোগাযোগ করুন..


  1. জাভাস্ক্রিপ্ট ইভেন্টগুলি ব্যবহার করে StimulusJS এর সাথে অবিচ্ছিন্নভাবে React.js একত্রিত করুন

  2. n আকারের প্রদত্ত অ্যারে চেক করুন n স্তরের BST প্রতিনিধিত্ব করতে পারে বা C++ এ নয়

  3. কিভাবে CSS ফন্ট-ভেরিয়েন্ট প্রপার্টি ব্যবহার করবেন (ছোট ক্যাপের জন্য)

  4. তাদের জাভাস্ক্রিপ্ট স্ক্রোল ইভেন্ট কি iPhone/iPad এর জন্য?