İşlevlerin belirli zamanlarda çalışmasını planlamak istiyorsanız onSchedule işleyicisini kullanarak Pub/Sub konusunu oluşturun. Bu konu, Cloud Scheduler kullanarak ilgili konudaki etkinlikleri tetikler.
Başlamadan önce
Planlanmış işlevler için faturalandırma yapılsa da genel maliyetin yönetilebilir olmasını bekleyebilirsiniz.Her Cloud Schedulerişin aylık maliyeti 0,10 ABD dolarıdır ve Google hesabı başına üç iş ücretsiz olarak sağlanır. Tahmini kullanımınıza göre maliyet tahmini oluşturmak için Blaze fiyat hesaplayıcıyı kullanın.
Pub/Sub ve Cloud Scheduler API'leri projeniz için etkinleştirilmelidir. Bunlar çoğu Firebase projesi için zaten etkinleştirilmiş olmalıdır. Google Cloud Console'da doğrulayabilirsiniz.
Planlanmış bir fonksiyon yazma
Cloud Functions for Firebase'da planlama mantığı, işlevler kodunuzda bulunur ve özel bir dağıtım zamanı şartı yoktur. Planlanmış işlev oluşturmak için functions.pubsub.schedule('your schedule').onRun((context)) kullanın.
Örneğin, App Engine cron.yaml söz dizimiyle bir işlevi her beş dakikada bir çalıştırmak için aşağıdakine benzer 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şlevi çalıştırmak için belirli bir saat dilimi seçmek üzere Crontab'ı kullanmak istiyorsanız şuna benzer 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 özellikler hakkında daha fazla bilgi için Cloud Scheduler referansına bakı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 CLI, konu adını yansıtır. İş 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.