Jika Anda ingin menjadwalkan fungsi untuk dijalankan pada waktu yang ditentukan, gunakan
pengendali onSchedule
untuk membuat topik
Pub/Sub yang menggunakan
Cloud Scheduler untuk memicu peristiwa pada
topik tersebut.
Sebelum memulai
Untuk menggunakan solusi ini di project Firebase, project Anda harus menggunakan paket harga Blaze. Jika belum menggunakan paket Blaze, upgrade paket harga Anda.
Meskipun penagihan diperlukan, biaya keseluruhan dapat dikelola, karena setiap tugas Cloud Scheduler memerlukan biaya $0,10 (USD) per bulan, dan terdapat kuota tiga tugas per akun Google, tanpa dikenai biaya. Gunakan kalkulator harga paket Blaze untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.
Pub/Sub dan Cloud Scheduler API harus diaktifkan untuk project Anda. Fitur ini seharusnya sudah diaktifkan untuk sebagian besar project Firebase. Anda dapat memverifikasinya di Google Cloud Platform Console.
Menulis fungsi terjadwal
Di Cloud Functions for Firebase, logika penjadwalan berada di kode fungsi Anda, tanpa persyaratan waktu deploy khusus. Untuk membuat fungsi terjadwal, gunakan functions.pubsub.schedule('your schedule').onRun((context))
.
Misalnya, untuk menjalankan fungsi setiap lima menit dengan sintaks App Engine cron.yaml, lakukan sesuatu seperti ini:
exports.scheduledFunction = functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
return null;
});
Baik sintaks Unix Crontab maupun App Engine didukung oleh Cloud Scheduler. Misalnya, untuk menggunakan Crontab guna memilih zona waktu tertentu yang akan digunakan untuk menjalankan fungsi terjadwal, lakukan hal seperti ini:
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;
});
Nilai untuk timeZone
harus berupa nama zona waktu dari database tz. Lihat referensi Cloud Scheduler untuk mengetahui informasi selengkapnya tentang properti yang didukung.
Men-deploy fungsi terjadwal
Saat Anda menerapkan fungsi terjadwal, tugas penjadwal dan topik pub/sub terkait dibuat secara otomatis. Firebase CLI mencerminkan nama topik, dan Anda dapat melihat tugas dan topik di GCP Console. Topiknya diberi nama sesuai dengan konvensi berikut:
firebase-scheduled-function_name-region
Contoh:
firebase-scheduled-scheduledFunctionCrontab-us-east1.