İşlevleri programlama


İşlevleri belirtilen zamanlarda çalışacak şekilde planlamak istiyorsanız onSchedule işleyicisini kullanarak bu konudaki etkinlikleri tetiklemek için Cloud Scheduler'ı kullanan bir Pub/Sub konusu oluşturun.

Başlamadan önce

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

Her Cloud Scheduler işinin aylık maliyeti 0,10 ABD dolarıdır.Ayrıca Google hesabı başına üç ücretsiz iş yapılmasına izin verildiğinden, faturalandırma gerekli olsa da genel maliyetin idare edilebilir olmasını bekleyebilirsiniz. Öngörülen kullanımınıza dayalı bir maliyet tahmini oluşturmak için Blaze fiyat hesaplayıcıyı kullanın.

Projeniz için Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmiş olmalıdır. Çoğu Firebase projesinde zaten etkinleştirilmiş olan bu özellikleri Google Cloud Platform Console'da doğrulayabilirsiniz.

Planlanmış fonksiyon yazma

Cloud Functions for Firebase'de planlama mantığı, herhangi bir özel dağıtım süresi şartı olmadan işlev kodunuzda yer alır. Planlanmış işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) işlevini kullanın. Örneğin, App Engine cron.yaml söz dizimiyle beş dakikada bir işlev çalıştırmak için şunun gibi bir şey 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, planlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek için Crontab'i kullanmak 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 edinmek için Cloud Scheduler referansına bakın.

Planlanmış bir işlevi 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ı tekrarlar. İşi ve konuyu GCP Console'da görüntüleyebilirsiniz. Konu, aşağıdaki düzene göre adlandırılır:

firebase-scheduled-function_name-region

Örnek:

firebase-scheduled-scheduledFunctionCrontab-us-east1.