Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Zamanlama işlevleri

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

İşlevleri belirli zamanlarda çalışacak şekilde planlamak istiyorsanız, functions.pubsub.schedule().onRun() kullanın . istenen zamanlama.

Sen başlamadan önce

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

Faturalandırma gerekli olsa da, her bir Cloud Scheduler işinin aylık 0,10 ABD Doları (ABD Doları) maliyeti olduğundan ve Google hesabı başına ücretsiz olarak üç iş ödeneği olduğundan, toplam 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, çoğu Firebase projesi için zaten etkinleştirilmelidir; Google Cloud Platform Konsolunda doğrulayabilirsiniz.

Zamanlanmış bir işlev yaz

Cloud Functions for Firebase'de programlama mantığı, özel dağıtım zamanı gereksinimleri olmaksızın işlev kodunuzda bulunur. Zamanlanmış bir işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) . Örneğin, App Engine cron.yaml söz dizimiyle her 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özdizimi, Cloud Scheduler tarafından desteklenir. Örneğin, programlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek üzere 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ından bir saat dilimi adı olmalıdır. Desteklenen özellikler hakkında daha fazla bilgi için Bulut Zamanlayıcı referansına bakın.

Zamanlanmış bir işlevi dağıtın

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

firebase-programed- function_name - region

Örneğin:

firebase-scheduled-scheduledFunctionCrontab-us-east1.