İşlevleri belirli zamanlarda çalışacak şekilde planlamak istiyorsanız onSchedule
işleyicisini kullanarak bu konudaki etkinlikleri tetiklemek için Cloud Scheduler kullanan bir Pub/Sub konusu oluşturun.
Başlamadan önce
Bu çözümü Firebase projenizde kullanabilmeniz 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 Cloud Scheduler işinin aylık maliyeti 0,10 ABD doları olduğu ve Google hesabı başına üç iş için ücretsiz kota bulunduğundan genel maliyetin makul olmasını bekleyebilirsiniz. Tahmini kullanımınıza göre maliyet tahmini oluşturmak için Blaze fiyat hesaplayıcıyı kullanın.
Projeniz için Pub/Sub ve Cloud Scheduler API'leri etkinleştirilmiş olmalıdır. Bu izinler çoğu Firebase projesinde zaten etkinleştirilmiş olmalıdır. Google Cloud Console'da bu durumu doğrulayabilirsiniz.
Planlanmış bir işlev yazma
Cloud Functions for Firebase'te planlama mantığı, özel dağıtım zamanı koşulları olmadan işlev kodunuzda bulunur. Planlanmış bir işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context))
işlevini kullanın.
Örneğin, App Engine cron.yaml söz dizimini kullanarak bir işlevi beş dakikada bir çalıştırmak için aşağıdaki gibi bir işlem 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, planlanmış bir işlevin çalışacağı belirli bir saat dilimini seçmek için Crontab'ı kullanmak istiyorsanız aşağıdaki gibi bir işlem 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ğerinin, tz veritabanındaki bir saat dilimi adı olması gerekir. Desteklenen mülkler hakkında daha fazla bilgi için Cloud Scheduler referansına göz atın.
Planlanmış işlev dağıtma
Planlanmış bir işlevi dağıttığınızda ilgili planlayıcı işi ve yayın/abonelik konusu otomatik olarak oluşturulur. Firebase İTŞ, konu adını yansıtır. İşi ve konuyu Google Cloud Console'da görüntüleyebilirsiniz. Konu, aşağıdaki kurala göre adlandırılır:
firebase-scheduled-function_name-region
Örneğin:
firebase-scheduled-scheduledFunctionCrontab-us-east1.