وظائف الجدول الزمني


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

قبل ان تبدأ

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

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

يجب تمكين واجهات برمجة تطبيقات Pub/Sub وCloud Scholer لمشروعك. يجب أن تكون هذه ممكّنة بالفعل لمعظم مشاريع Firebase؛ يمكنك التحقق في Google Cloud Platform Console .

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

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

يتم دعم كل من بناء جملة Unix Crontab وApp Engine بواسطة Cloud Scholer. على سبيل المثال، لاستخدام 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 . راجع مرجع برنامج جدولة السحابة لمزيد من المعلومات حول الخصائص المدعومة.

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

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

Firebase-Scheduled function_name - region

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

firebase-scheduled-scheduledFunctionCrontab-us-east1.