আপনি যদি নির্দিষ্ট সময়ে চালানোর জন্য ফাংশনগুলি নির্ধারণ করতে চান, তাহলে functions.pubsub.schedule().onRun()
ব্যবহার করুন এই সুবিধার পদ্ধতিটি একটি Pub/Sub বিষয় তৈরি করে এবং সেই বিষয়ে ইভেন্টগুলি ট্রিগার করতে ক্লাউড শিডিউলার ব্যবহার করে, নিশ্চিত করে যে আপনার ফাংশন চলছে কাঙ্ক্ষিত সময়সূচী।
তুমি শুরু করার আগে
আপনার ফায়ারবেস প্রকল্পে এই সমাধানটি ব্যবহার করতে, আপনার প্রকল্পটি অবশ্যই ব্লেজ মূল্য পরিকল্পনায় থাকতে হবে। যদি এটি ইতিমধ্যেই Blaze প্ল্যানে না থাকে, তাহলে আপনার মূল্য নির্ধারণের পরিকল্পনা আপগ্রেড করুন ।
যদিও বিলিং প্রয়োজন, আপনি সামগ্রিক খরচ পরিচালনাযোগ্য হবে বলে আশা করতে পারেন, কারণ প্রতিটি ক্লাউড শিডিউলারের কাজের জন্য প্রতি মাসে $0.10 (USD) খরচ হয় এবং প্রতি Google অ্যাকাউন্টে তিনটি কাজের ভাতা রয়েছে, কোনো চার্জ ছাড়াই৷ আপনার অনুমান করা ব্যবহারের উপর ভিত্তি করে একটি খরচ অনুমান তৈরি করতে ব্লেজ প্রাইসিং ক্যালকুলেটর ব্যবহার করুন।
আপনার প্রজেক্টের জন্য পাব/সাব এবং ক্লাউড শিডিউলার এপিআই সক্রিয় থাকতে হবে। বেশিরভাগ ফায়ারবেস প্রকল্পের জন্য এগুলি ইতিমধ্যেই সক্ষম করা উচিত; আপনি Google ক্লাউড প্ল্যাটফর্ম কনসোলে যাচাই করতে পারেন।
একটি নির্ধারিত ফাংশন লিখুন
ফায়ারবেসের জন্য ক্লাউড ফাংশনে, সময় নির্ধারণের যুক্তি আপনার ফাংশন কোডে থাকে, কোনো বিশেষ স্থাপনার সময় প্রয়োজন নেই। একটি নির্ধারিত ফাংশন তৈরি করতে, functions.pubsub.schedule('your schedule').onRun((context))
ব্যবহার করুন। উদাহরণস্বরূপ, অ্যাপ ইঞ্জিন cron.yaml সিনট্যাক্সের সাথে প্রতি পাঁচ মিনিটে একটি ফাংশন চালানোর জন্য, এইরকম কিছু করুন:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
ইউনিক্স ক্রন্টাব এবং অ্যাপ ইঞ্জিন সিনট্যাক্স উভয়ই ক্লাউড শিডিউলার দ্বারা সমর্থিত। উদাহরণস্বরূপ, একটি নির্দিষ্ট টাইমজোন নির্বাচন করতে ক্রন্টাব ব্যবহার করার জন্য যেখানে একটি নির্ধারিত ফাংশন চালানো হবে, এরকম কিছু করুন:
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 ডাটাবেস থেকে একটি টাইম জোনের নাম হতে হবে। সমর্থিত বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য ক্লাউড শিডিউলার রেফারেন্স দেখুন।
একটি নির্ধারিত ফাংশন স্থাপন করুন
আপনি যখন একটি নির্ধারিত ফাংশন স্থাপন করেন, তখন সম্পর্কিত শিডিউলারের কাজ এবং পাব/সাব বিষয় স্বয়ংক্রিয়ভাবে তৈরি হয়। Firebase CLI বিষয়ের নামের প্রতিধ্বনি করে, এবং আপনি GCP কনসোলে কাজ এবং বিষয় দেখতে পারেন। নিম্নলিখিত কনভেনশন অনুসারে বিষয়টির নামকরণ করা হয়েছে:
firebase-scheduled- function_name - region
উদাহরণ স্বরূপ:
ফায়ারবেস-নির্ধারিত-নির্ধারিত ফাংশন ক্রন্টাব-ইউএস-ইস্ট1।