আপনি যদি নির্দিষ্ট সময়ে ফাংশন রান করার জন্য শিডিউল করতে চান, তাহলে
onSchedule হ্যান্ডলার ব্যবহার করে একটি
Pub/Sub টপিক তৈরি করুন যা
Cloud Scheduler ব্যবহার করে সেই টপিকে
ইভেন্ট ট্রিগার করে।
শুরু করার আগে
শিডিউল করা ফাংশনের জন্য বিল করা হলেও, আপনি আশা করতে পারেন যে সামগ্রিক খরচ ম্যানেজ করা যাবে, কারণ প্রতিটি Cloud Scheduler জবের জন্য প্রতি মাসে $০.১০ (মার্কিন ডলার) খরচ হয় এবং প্রতিটি Google অ্যাকাউন্টে তিনটি জব ফ্রিতে করার অনুমতি আছে। আপনার আনুমানিক ব্যবহারের উপর ভিত্তি করে খরচের অনুমান তৈরি করতে Blaze মূল্য ক্যালকুলেটর ব্যবহার করুন।
আপনার প্রোজেক্টের জন্য Pub/Sub এবং Cloud Scheduler API চালু করতে হবে। বেশিরভাগ Firebase প্রোজেক্টের জন্য এগুলি আগে থেকেই চালু করা থাকে; আপনি Google Cloud কনসোল থেকে যাচাই করতে পারবেন।
শিডিউল করা ফাংশন লিখুন
Cloud Functions for Firebase-এ, শিডিউলিং লজিক আপনার ফাংশন কোডে থাকে,
এতে কোনও বিশেষ ডিপ্লয়-টাইম প্রয়োজনীয়তা থাকে না। শিডিউল করা ফাংশন তৈরি করতে,
functions.pubsub.schedule('your schedule').onRun((context)) ব্যবহার করুন।
যেমন, প্রতি পাঁচ মিনিটে একটি ফাংশন রান করতে
App Engine cron.yaml
সিনট্যাক্স ব্যবহার করে, এই ধরনের কিছু করুন:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Cloud Scheduler-এ Unix Crontab এবং App Engine সিনট্যাক্স দুটিই কাজ করে। যেমন, Crontab ব্যবহার করে শিডিউল করা ফাংশন চালানোর জন্য নির্দিষ্ট টাইমজোন বেছে নিতে, এইভাবে করুন:
exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 11 * * *')
.timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
.onRun((context) => {
console.log('This will be run every day at 11:05 AM Eastern!');
return null;
});
timeZone-এর ভ্যালু অবশ্যই tz ডেটাবেস থেকে
নেওয়া টাইম জোনের নাম হতে হবে। কাজ করে এমন প্রপার্টি সম্পর্কে আরও জানতে
Cloud Scheduler রেফারেন্স
দেখুন।
শিডিউল করা ফাংশন ডিপ্লয় করুন
আপনি শিডিউল করা ফাংশন ডিপ্লয় করলে, সম্পর্কিত শিডিউলার জব এবং পাব/সাব টপিক অটোমেটিক তৈরি হয়ে যায়। Firebase CLI বিষয়ের নাম ইকো করে, এবং আপনি Google Cloud কনসোলে জব ও বিষয় দেখতে পারবেন। নিম্নলিখিত কনভেনশন অনুযায়ী বিষয়ের নাম দেওয়া হয়:
firebase-scheduled-function_name-region
যেমন:
firebase-scheduled-scheduledFunctionCrontab-us-east1.