Program işlevleri


İşlevlerin belirli zamanlarda çalışmasını planlamak istiyorsanız onSchedule işleyicisini kullanarak Pub/Sub konusunu oluşturun. Bu konu, Cloud Scheduler kullanarak ilgili konudaki etkinlikleri tetikler.

Başlamadan önce

Bu çözümü Firebase projenizde kullanabilmeniz için projenizin Blaze fiyatlandırma planı kapsamında olması gerekir. Henüz Blaze planında değilse fiyatlandırma planınızı yükseltin.

Faturalandırma gerekli olsa da genel maliyetin yönetilebilir olmasını bekleyebilirsiniz.Her Cloud Scheduler işin aylık maliyeti 0,10 ABD dolarıdır ve Google hesabı başına üç iş ücretsiz olarak sağlanır. Tahmini kullanımınıza göre maliyet tahmini oluşturmak için Blaze fiyat hesaplayıcıyı kullanın.

Projenizde Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmelidir. Bunlar çoğu Firebase projesi için zaten etkinleştirilmiş olmalıdır. Google Cloud Console'da doğrulama yapabilirsiniz.

Planlanmış bir fonksiyon yazma

Cloud Functions for Firebase'da planlama mantığı, özel dağıtım zamanı şartları olmadan işlevler kodunuzda bulunur. Planlanmış işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) kullanın. Örneğin, App Engine cron.yaml söz dizimiyle bir işlevi her beş dakikada bir çalıştırmak için aşağıdakine benzer bir işlem yapın:

exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
  console.log('This will be run every 5 minutes!');
  return null;
});

Hem Unix Crontab hem de App Engine söz dizimi Cloud Scheduler tarafından desteklenir. Örneğin, Crontab'ı kullanarak planlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek için aşağıdakine benzer bir işlem yapın:

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 değeri, tz veritabanındaki bir saat dilimi adı olmalıdır. Desteklenen özellikler hakkında daha fazla bilgi için Cloud Scheduler referansına bakın.

Planlanmış işlev dağıtma

Planlanmış bir işlevi dağıttığınızda ilgili planlayıcı işi ve pub/sub konusu otomatik olarak oluşturulur. Firebase CLI, konu adını yansıtır. İş ve konuyu Google Cloud Console'da görüntüleyebilirsiniz. Konu, aşağıdaki kurala göre adlandırılır:

firebase-scheduled-function_name-region

Örneğin:

firebase-scheduled-scheduledFunctionCrontab-us-east1.