Catch up on highlights from Firebase at Google I/O 2023. Learn more

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


إذا كنت تريد جدولة وظائف للتشغيل في أوقات محددة ، فاستخدم معالج onSchedule لإنشاء موضوع Pub / Sub يستخدم Cloud Scheduler لتشغيل الأحداث المتعلقة بهذا الموضوع.

قبل ان تبدأ

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

على الرغم من أن الفوترة مطلوبة ، يمكنك توقع أن تكون التكلفة الإجمالية قابلة للإدارة ، حيث أن كل وظيفة Cloud Scheduler تكلف 0.10 دولارًا أمريكيًا (USD) شهريًا ، وهناك بدل لثلاث وظائف لكل حساب 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;
});

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

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

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

جدولة Firebase- function_name - region

على سبيل المثال:

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