جدولة الدوال


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

قبل البدء

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

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

يجب تفعيل واجهات برمجة التطبيقات Pub/Sub وCloud Scheduler، مشروعك. ويُفترض أن تكون هذه الإعدادات مفعَّلة لمعظم مشاريع Firebase. يمكنك إثبات الملكية في وحدة تحكُّم Google Cloud Platform.

كتابة دالة مُجدوَلة

في وظائف السحابة الإلكترونية لبرنامج 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 Scheduler. على سبيل المثال، لاستخدام 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. يمكنك الاطّلاع على مرجع أداة جدولة المهام في السحابة الإلكترونية للحصول على مزيد من المعلومات حول السمات المتوافقة.

تفعيل دالة مُجدوَلة

عند نشر دالة مجدولة، تكون مهمة أداة الجدولة ذات الصلة وpub/sub يتم إنشاء الموضوع تلقائيًا. يشبه واجهة سطر الأوامر في Firebase اسم الموضوع ويمكنك الاطّلاع على الوظيفة والموضوع وحدة تحكُّم Google Cloud Platform تمت تسمية الموضوع وفقًا للاصطلاح التالي:

firebase-scheduled-function_name-region

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

firebase-scheduled-scheduledFunctionCrontab-us-east1