সময়সূচী ফাংশন


আপনি যদি নির্দিষ্ট সময়ে চালানোর জন্য ফাংশন নির্ধারণ করতে চান, তাহলে একটি Pub/Sub বিষয় তৈরি করতে onSchedule হ্যান্ডলার ব্যবহার করুন যা সেই বিষয়ে ইভেন্টগুলি ট্রিগার করতে Cloud Scheduler ব্যবহার করে।

আপনি শুরু করার আগে

আপনার ফায়ারবেস প্রকল্পে এই সমাধানটি ব্যবহার করতে, আপনার প্রকল্পটি অবশ্যই ব্লেজ মূল্য পরিকল্পনায় থাকতে হবে। যদি এটি ইতিমধ্যেই Blaze প্ল্যানে না থাকে, তাহলে আপনার মূল্য নির্ধারণের পরিকল্পনা আপগ্রেড করুন

যদিও বিলিং প্রয়োজন, আপনি সামগ্রিক খরচ পরিচালনাযোগ্য হবে বলে আশা করতে পারেন, কারণ প্রতিটি Cloud Scheduler কাজের জন্য প্রতি মাসে $0.10 (USD) খরচ হয় এবং প্রতি Google অ্যাকাউন্টে তিনটি কাজের ভাতা রয়েছে, কোনো চার্জ ছাড়াই৷ আপনার অনুমান করা ব্যবহারের উপর ভিত্তি করে একটি খরচ অনুমান তৈরি করতে ব্লেজ প্রাইসিং ক্যালকুলেটর ব্যবহার করুন।

আপনার প্রজেক্টের জন্য Pub/Sub এবং Cloud Scheduler এপিআই সক্রিয় থাকতে হবে। বেশিরভাগ ফায়ারবেস প্রকল্পের জন্য এগুলি ইতিমধ্যেই সক্ষম করা উচিত; আপনি Google ক্লাউড কনসোলে যাচাই করতে পারেন।

একটি নির্ধারিত ফাংশন লিখুন

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;
});

ইউনিক্স ক্রন্টাব এবং App Engine সিনট্যাক্স উভয়ই Cloud Scheduler দ্বারা সমর্থিত। উদাহরণস্বরূপ, একটি নির্দিষ্ট টাইমজোন নির্বাচন করতে ক্রন্টাব ব্যবহার করার জন্য যেখানে একটি নির্ধারিত ফাংশন চালানো হবে, এরকম কিছু করুন:

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 ক্লাউড কনসোলে কাজ এবং বিষয় দেখতে পারেন। নিম্নলিখিত কনভেনশন অনুসারে বিষয়টির নামকরণ করা হয়েছে:

firebase-scheduled- function_name - region

যেমন:

ফায়ারবেস-নির্ধারিত-নির্ধারিত ফাংশন ক্রন্টাব-ইউএস-ইস্ট1।

,


আপনি যদি নির্দিষ্ট সময়ে চালানোর জন্য ফাংশন নির্ধারণ করতে চান, তাহলে একটি Pub/Sub বিষয় তৈরি করতে onSchedule হ্যান্ডলার ব্যবহার করুন যা সেই বিষয়ে ইভেন্টগুলি ট্রিগার করতে Cloud Scheduler ব্যবহার করে।

আপনি শুরু করার আগে

আপনার ফায়ারবেস প্রকল্পে এই সমাধানটি ব্যবহার করতে, আপনার প্রকল্পটি অবশ্যই ব্লেজ মূল্য পরিকল্পনায় থাকতে হবে। যদি এটি ইতিমধ্যেই Blaze প্ল্যানে না থাকে, তাহলে আপনার মূল্য নির্ধারণের পরিকল্পনা আপগ্রেড করুন

যদিও বিলিং প্রয়োজন, আপনি সামগ্রিক খরচ পরিচালনাযোগ্য হবে বলে আশা করতে পারেন, কারণ প্রতিটি Cloud Scheduler কাজের জন্য প্রতি মাসে $0.10 (USD) খরচ হয় এবং প্রতি Google অ্যাকাউন্টে তিনটি কাজের ভাতা রয়েছে, কোনো চার্জ ছাড়াই৷ আপনার অনুমান করা ব্যবহারের উপর ভিত্তি করে একটি খরচ অনুমান তৈরি করতে ব্লেজ প্রাইসিং ক্যালকুলেটর ব্যবহার করুন।

আপনার প্রজেক্টের জন্য Pub/Sub এবং Cloud Scheduler এপিআই সক্রিয় থাকতে হবে। বেশিরভাগ ফায়ারবেস প্রকল্পের জন্য এগুলি ইতিমধ্যেই সক্ষম করা উচিত; আপনি Google ক্লাউড কনসোলে যাচাই করতে পারেন।

একটি নির্ধারিত ফাংশন লিখুন

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;
});

ইউনিক্স ক্রন্টাব এবং App Engine সিনট্যাক্স উভয়ই Cloud Scheduler দ্বারা সমর্থিত। উদাহরণস্বরূপ, একটি নির্দিষ্ট টাইমজোন নির্বাচন করতে ক্রন্টাব ব্যবহার করার জন্য যেখানে একটি নির্ধারিত ফাংশন চালানো হবে, এরকম কিছু করুন:

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 ক্লাউড কনসোলে কাজ এবং বিষয় দেখতে পারেন। নিম্নলিখিত কনভেনশন অনুসারে বিষয়টির নামকরণ করা হয়েছে:

firebase-scheduled- function_name - region

যেমন:

ফায়ারবেস-নির্ধারিত-নির্ধারিত ফাংশন ক্রন্টাব-ইউএস-ইস্ট1।