İş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.