QStash হল একটি টাস্ক শিডিউলার এবং মেসেজ কিউ সিস্টেম যা সার্ভারহীন পরিবেশের জন্য ডিজাইন করা হয়েছে। এটি ডেভেলপারদের জন্য একটি মূল্যবান টুল কারণ এটি তাদের স্বয়ংক্রিয় ওয়ার্কফ্লো সেট আপ করতে দেয় যা নির্দিষ্ট ব্যবধানে একবার বা বারবার চলে, অবস্থা পরিচালনার বিষয়ে চিন্তা না করে।
কিভাবে একটি অনুরোধ তৈরি করতে হয় তার অনুভূতি পেতে আপনি QStash কনসোলে ঘুরে আসতে পারেন:

ব্যবহারের ক্ষেত্রে
আমার পণ্য GPT হটলাইন মূলত WhatsApp এ ChatGPT (আমরা একই অন্তর্নিহিত মডেল ব্যবহার করি)। আপনি ChatGPT অ্যাপের মতোই একটি ডেডিকেটেড নম্বরে বটকে টেক্সট করতে পারেন।
GPT হটলাইন শুধু টেক্সট করার বাইরে অতিরিক্ত বৈশিষ্ট্য অফার করে, যেমন ইমেজ সার্চ, ভিডিও সার্চ এবং নিউজ। উপরন্তু, আমি একটি অনুস্মারক বৈশিষ্ট্য যোগ করতে চেয়েছিলাম, যা ব্যবহারকারীদের একটি নির্দিষ্ট সময়ে একটি বার্তা পাওয়ার জন্য বটকে টেক্সট করতে দেয়৷
একটি সাধারণ প্রবাহ যেখানে আপনি একটি নির্দিষ্ট সময়ে আপনাকে একটি বার্তা পাঠাতে বটকে টেক্সট করতে পারেন। এটি দেখতে এরকম কিছু হবে:

আমি আগেও সার্ভারহীন রেডিসের জন্য Upstash ব্যবহার করেছি তাই আমি QStash সম্পর্কে অস্পষ্টভাবে সচেতন ছিলাম এবং এটি আরও শেখার উপযুক্ত সুযোগ বলে মনে হয়েছিল!
চলুন ডুব দেওয়া যাক
আমরা যে উচ্চ-স্তরের ওয়ার্কফ্লো কোড আপ করতে চাই তা হল
ব্যবহারকারী অনুস্মারক বার্তা পাঠায় -> QStash কাজ সেট আপ করা হয়েছে -> QStash নির্দিষ্ট সময়ে API ট্রিগার করে -> ব্যবহারকারীকে পাঠানো বার্তা
জিনিসগুলি সহজ রাখতে, আমি শুধুমাত্র QStash কোডের উপর ফোকাস করব। GPT হটলাইনে "পাওয়ার কমান্ড" রয়েছে যা বটের ডিফল্ট প্রতিক্রিয়াকে ওভাররাইড করে এবং একটি অনুস্মারক সেট করার কমান্ডটি নিম্নলিখিত বিন্যাসে রয়েছে:
sudo reminder <TIME-INTERVAL> <MY-MESSAGE> উদাহরণস্বরূপ, যদি আপনি টেক্সট করুন:
sudo reminder 3h go for a walk "sudo অনুস্মারক" কমান্ডটি অনুস্মারক কোডটি ট্রিগার করবে এবং "3h" নির্দেশ করে যে আপনি অনুস্মারকটি ("হাঁতে যান") 3 ঘন্টার মধ্যে প্রেরণ করতে চান৷
GPT হটলাইন Next.js ব্যবহার করে তৈরি করা হয়েছে যাতে আমরা কয়েকটি উপায়ে QStash ট্রিগার করতে পারি। তাদের একটি verifySignature ফাংশন রয়েছে যা আপনি প্রমাণীকরণ করতে ব্যবহার করতে পারেন তবে জিনিসগুলি সহজ রাখতে আমরা REST API পদ্ধতি ব্যবহার করব৷
// Note: There are CURL Command examples available in the QStash docs.
const YOUR_API_URL = "https://api.example.com";
const MY_MESSAGE = "go for a walk";
const REMINDER_TIME = "3h";
const MESSENGER = "1800-MCDONALDS";
await fetch(`https://qstash.upstash.io/v1/publish/${YOUR_API_URL}`, {
headers: {
Authorization: `Bearer ${process.env.QSTASH_TOKEN}`,
"Upstash-Delay": REMINDER_TIME,
"Content-Type": "application/json",
},
method: "POST",
body: JSON.stringify({
message: MY_MESSAGE,
messenger: MESSENGER,
}),
}); এটি একটি আনার অনুরোধের একটি উদাহরণ যা আমরা QStash এ পাঠাতে পারি। আমার কাছে হার্ডকোড করা মান রয়েছে এবং অতিরিক্ত ক্ষেত্রগুলি সরিয়ে দেওয়া হয়েছে, তবে এটি অ্যাপে আমাদের প্রকৃত আনার অনুরোধের একটি ভাল উপস্থাপনা৷
বার্তা পাঠানোর জন্য QStash-এর একটি URL প্রয়োজন৷ এটি হবে আমাদের API URL যা আমরা নির্দিষ্ট সময়ে ট্রিগার করতে চাই৷
৷Upstash-বিলম্বের মান বার্তা পাঠানোর সময় নির্ধারণ করে। Upstash-Delay সেকেন্ড (s), মিনিট (m), ঘন্টা (h), এবং দিন (d) এর মান নিতে পারে। উদাহরণস্বরূপ, 30m হল 30 মিনিট এবং 2d হল 2 দিন, ইত্যাদি৷ আমরা যদি এমন একটি কাজ সেট আপ করতে চাই যা শুধুমাত্র একবারের পরিবর্তে পর্যায়ক্রমে চলে, আমরা ক্রোন লজিক* সহ Upstash-Cron ক্ষেত্র ব্যবহার করব।*
আমরা প্রাপকের নম্বর (মেসেঞ্জার) সহ বডিতে বার্তা পাঠাব এবং আমাদের QSTASH_TOKEN ব্যবহার করে প্রমাণীকরণ করব যা একটি পরিবেশ পরিবর্তনশীল হিসাবে সেট করা আছে।
আর এটাই! যদি সবকিছু প্রত্যাশিতভাবে কাজ করে, তাহলে আমরা একটি নিশ্চিতকরণ পাব যে অনুস্মারক সেট করা হয়েছে, এবং QStash বার্তা এবং মেসেঞ্জার মানগুলির সাথে (যা ফলস্বরূপ অনুস্মারকটি প্রাপকের কাছে পাঠাবে) সহ নির্ধারিত সময়ে API ট্রিগার করবে।
উপসংহার
আমি এই বৈশিষ্ট্যটি বন্ধ করে দিয়েছিলাম কারণ আমি ভেবেছিলাম এটি বাস্তবায়ন করা কিছুটা জটিল হবে, কিন্তু QStash-এর সাহায্যে, আমি মাত্র এক সন্ধ্যায় এটিকে ছিটকে দিতে সক্ষম হয়েছিলাম!
আমি অত্যন্ত আপনি এটি চেক আউট সুপারিশ. তাদের 500টি বার্তা/দিনের একটি উদার বিনামূল্যের স্তর রয়েছে যা আপনি ব্যবহার করা শুরু করতে পারেন, এবং শুধুমাত্র একবার আপনার আবেদন স্কেল করলেই অর্থ প্রদান করুন, তাই এটিকে শট না দেওয়ার কোন কারণ নেই৷
চিয়ার্স, বিলাল
sudo reminder 1m Good Luck!
