İşlevleri programlayın


İşlevleri belirli zamanlarda çalışacak şekilde planlamak istiyorsanız, o konudaki etkinlikleri tetiklemek için Cloud Scheduler'ı kullanan bir Pub/Sub konusu oluşturmak için onSchedule işleyicisini kullanın.

Sen başlamadan önce

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

Faturalandırma gerekli olsa da, her Cloud Scheduler işinin aylık maliyeti 0,10 ABD Doları (USD) olduğundan ve Google hesabı başına üç iş için ücretsiz izin verildiğinden genel maliyetin yönetilebilir olmasını bekleyebilirsiniz. Tahmini kullanımınıza dayalı bir maliyet tahmini oluşturmak için Blaze fiyatlandırma hesaplayıcısını kullanın.

Projeniz için Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmelidir. Bunların çoğu Firebase projesi için zaten etkinleştirilmesi gerekir; Google Cloud Platform Konsolu'nda doğrulayabilirsiniz.

Zamanlanmış bir işlev yazın

Cloud Functions for Firebase'de planlama mantığı, herhangi bir özel dağıtım süresi gereksinimi olmaksızın işlev kodunuzda bulunur. Zamanlanmış bir işlev oluşturmak için, functions.pubsub.schedule('your schedule').onRun((context)) kullanın. Örneğin, App Engine cron.yaml söz dizimi ile her beş dakikada bir bir işlevi ç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, zamanlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek amacıyla Crontab'ı kullanmak için şunun gibi bir şey 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.

Zamanlanmış bir işlevi dağıtma

Zamanlanmış bir işlevi dağıttığınızda, ilgili zamanlayıcı işi ve pub/sub konusu otomatik olarak oluşturulur. Firebase CLI, konu adını yansıtır ve işi ve konuyu GCP Konsolunda görüntüleyebilirsiniz. Konu aşağıdaki kurallara göre adlandırılmıştır:

firebase-zamanlanmış- function_name - region

Örneğin:

firebase-scheduled-scheduledFunctionCrontab-us-east1.