Catch up on everthing we announced at this year's Firebase Summit. Learn more

Zamanlama işlevleri

Belirtilen zamanlarda, kullanım çalışacak şekilde zamanlama fonksiyonları istiyorsanız functions.pubsub.schedule().onRun() Bu kolaylık yöntemi oluşturur Pub / Sub konuyu ve kullanan Bulut Zamanlayıcı sağlayarak o konuda tetikleyici olaylara senin fonksiyon çalıştığı istenen zamanlama.

Sen başlamadan önce

Bu çözümü Firebase projenizde kullanmak için projenizin Blaze fiyatlandırma planında olması gerekir. O Blaze plan üzerinde halihazırda yüklü değilse, fiyatlandırma planı yükseltmek .

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 işe izin verildiğinden, genel maliyetin yönetilebilir olmasını bekleyebilirsiniz. Blaze kullanın fiyatlandırma hesap yansıtılan kullanıma göre bir maliyet tahmini üretmek için.

Projeniz için Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmelidir. Bunlar, çoğu Firebase projesi için zaten etkinleştirilmelidir; İçinde doğrulayabilir Google Bulut Platformu Konsolundan .

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ış işlevi, kullanım oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) . Örneğin, bir işlev ile her beş dakikada bir çalışacak şekilde App Engine cron.yaml böyle bir şey, söz dizimi:

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;
});

Değeri timeZone bir saat dilimi adı olmalıdır tz veritabanı . Bkz Bulut Zamanlayıcı referansı desteklenen özellikleri üzerine daha fazla bilgi için bkz.

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ı yankıları ve işi ve konuyu görüntüleyebilirsiniz GSO Konsol . Konu, aşağıdaki kurala göre adlandırılmıştır:

Firebase-scheduled- function_name - region

Örneğin:

firebase-schedued-scheduledFunctionCrontab-us-east1.