İşlevleri belirli zamanlarda çalışacak şekilde planlamak istiyorsanız onSchedule
işleyicisini kullanarak söz konusu 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.
Her Cloud Scheduler işinin maliyeti aylık 0,10 ABD doları olduğundan ve Google hesabı başına üç işe ücretsiz olarak izin verildiğinden, faturalandırma gerekli olsa da toplam maliyetin yönetilebilir 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ğeri, tz veritabanındaki bir saat dilimi adı olmalıdır. 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 pub/sub 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.