Jawaban:
Perbarui 2019-04-18
Sekarang ada cara yang sangat sederhana untuk menerapkan kode terjadwal di Cloud Functions melalui Firebase.
Anda dapat menggunakan sintaks teks sederhana:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
Atau format tabel cron yang lebih fleksibel:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
Untuk mempelajari lebih lanjut tentang ini, lihat:
Perhatikan bahwa proyek Anda harus menggunakan paket Blaze agar ini berfungsi, jadi saya meninggalkan opsi alternatif di bawah ini untuk referensi.
Jika Anda ingin menjadwalkan satu pemanggilan Cloud Function pada penundaan dari dalam eksekusi pemicu lain, Anda dapat menggunakan Cloud Tasks untuk menyiapkannya. Baca artikel ini untuk contoh tambahan tentang cara kerjanya.
Jawaban asli di bawah ...
Belum ada pemicu tipe runat / cron bawaan.
Untuk saat ini, opsi terbaik adalah menggunakan layanan eksternal untuk memicu fungsi HTTP secara berkala. Lihat contoh ini di repo function-samples untuk informasi selengkapnya. Atau gunakan Google Cloud Scheduler yang baru-baru ini diperkenalkan untuk memicu Cloud Functions melalui PubSub atau HTTPS:
Saya juga sangat merekomendasikan membaca posting ini di blog Firebase: Cara Menjadwalkan (Cron) Pekerjaan dengan Cloud Functions for Firebase dan video ini: Timing Cloud Functions for Firebase menggunakan HTTP Trigger dan Cron .
Tautan terakhir tersebut menggunakan cron-job.org untuk memicu Cloud Functions, dan berfungsi untuk proyek yang menggunakan paket gratis. Perhatikan bahwa ini memungkinkan siapa saja untuk memanggil fungsi Anda tanpa otorisasi, jadi Anda mungkin ingin memasukkan beberapa mekanisme perlindungan penyalahgunaan dalam kode itu sendiri.
Each Cloud Scheduler job costs $0.10 (USD) per month
:, dengan asumsi "tugas" tidak berarti setiap kali hal yang dijadwalkan diaktifkan, tetapi biaya per timer? yaitu pekerjaan yang berjalan setiap menit hanya berharga $ 0,10? (tidak termasuk fungsi cloud apa pun yang dipanggilnya).
Yang dapat Anda lakukan adalah menjalankan instance AppEngine yang dipicu oleh tugas cron dan dikirim ke PubSub. Saya menulis posting blog khusus tentang itu, Anda mungkin ingin melihatnya:
https://mhaligowski.github.io/blog/2017/05/25/scheduled-cloud-function-execution.html
cron-job.org
dibicarakan Jen di postingan blog itu gratis untuk digunakan.