Menjadwalkan fungsi


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.