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 belirtilen zamanlarda çalışacak şekilde programlamak istiyorsanız, functions.pubsub.schedule().onRun() kullanın. Bu kolaylık yöntemi bir Pub/Sub konusu oluşturur ve bu konudaki etkinlikleri tetiklemek için Bulut Zamanlayıcı'yı kullanarak işlevinizin şu anda çalışmasını sağlar. istenen zamanlama.

Sen başlamadan önce

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

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

Zamanlanmış bir işlev yazın

Firebase için Cloud Functions'ta, zamanlama mantığı, özel dağıtım zamanı gereksinimleri olmadan 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özdizimiyle her beş dakikada 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özdizimi, Cloud Scheduler tarafından desteklenir. Örneğin, zamanlanmış bir işlevin çalıştırılacağı belirli bir saat dilimini seçmek üzere Crontab'ı kullanmak için şöyle 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 alınan 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 pub/sub konusu otomatik olarak oluşturulur. Firebase CLI, konu adını tekrarlar ve işi ve konuyu GCP Console'da görüntüleyebilirsiniz. Konu, aşağıdaki kurala göre adlandırılmıştır:

firebase-planlanmış- function_name - region

Örneğin:

firebase-schedued-scheduledFunctionCrontab-us-east1.