جدولة الوظائف

إذا كنت ترغب في جدولة وظائف للتشغيل في أوقات محددة ، فاستخدم functions.pubsub.schedule().onRun() تنشئ هذه الطريقة الملائمة موضوع Pub / Sub وتستخدم Cloud Scheduler لتشغيل الأحداث المتعلقة بهذا الموضوع ، مما يضمن تشغيل وظيفتك على الجدول المطلوب.

قبل ان تبدأ

لاستخدام هذا الحل في مشروع Firebase الخاص بك ، يجب أن يكون مشروعك على خطة تسعير Blaze. إذا لم تكن مدرجة بالفعل في خطة Blaze ، فقم بترقية خطة التسعير الخاصة بك .

على الرغم من أن الفوترة مطلوبة ، يمكنك توقع أن تكون التكلفة الإجمالية قابلة للإدارة ، حيث أن كل وظيفة Cloud Scheduler تكلف 0.10 دولارًا أمريكيًا شهريًا ، وهناك بدل لثلاث وظائف لكل حساب Google ، دون مقابل. استخدم حاسبة تسعير Blaze لإنشاء تقدير للتكلفة بناءً على استخدامك المتوقع.

يجب تمكين Pub / Sub و Cloud Scheduler API لمشروعك. يجب تمكينها بالفعل لمعظم مشاريع Firebase ؛ يمكنك التحقق في Google Cloud Platform Console .

اكتب وظيفة مجدولة

في Cloud Functions لـ 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;
});

يجب أن تكون قيمة المنطقة الزمنية اسم منطقة زمنية من قاعدة بيانات tz timeZone راجع مرجع Cloud Scheduler للحصول على مزيد من المعلومات حول الخصائص المدعومة.

نشر وظيفة مجدولة

عند نشر وظيفة مجدولة ، يتم إنشاء وظيفة المجدول ذات الصلة والموضوع العام / الفرعي تلقائيًا. يردد Firebase CLI اسم الموضوع ، ويمكنك عرض الوظيفة والموضوع في وحدة تحكم GCP . تم تسمية الموضوع حسب الاصطلاح التالي:

جدولة Firebase- function_name - region

فمثلا:

فايرباس-مجدول-جدولةوظيفة Frontab-us-east1.