Cronjob merupakan salah satu fitur pemrograman untuk menjadwalkan fungsi-fungsi class yang ada di kode backend kita. Dimana Cronjob sendiri adalah fitur untuk menjalankan satu fungsi atau beberapa fungsi untuk diproses dibelakang layar, atau dibelakang proses-proses umum yang di akses oleh user.
yarn add node-cron
Lalu jika anda menggunakan expressjs
anda bisa menggunakan di server.js
root api anda.
... const express = require('express'); const port = process.env.PORT || 3000; const app = express(); // Gunakan Nodecron dibawah ini ... // Sebelum app listen dibawah ini app.listen(port, () => { console.log(`App running on ${port}`) })
Jika melihat aplikasi diatas adalah aplikasi normal yang kita buat dari awal menggunakan expressjs
nah sekarang akan kita tambahkan kode berikut
const dayjs = require('dayjs'); ... const scheduleRunCron = async () => { const now = new Date(); const nowDate = dayjs(now).format('YYYY-MM-DD'); const nowTime = dayjs(now).format('HH:mm:ss'); console.log(`Date ${nowDate} and Time ${nowTime}`); }; // Cronjob akan berjalan tiap 2 detik. const cronjob = cron.schedule('*/2 * * * * *', async () => { scheduleRunCron(); }); cronjob.start();
kode diatas artinya kita akan menjalankan fungsi scheduleRunCron
setiap 2 detik sekali. anda bisa mengatur ingin dilakukan berapa menit, detik, jam, hari sesuai dengan schedule yang anda inginkan anda bisa melihat parameternya di Package node-cron
dilink ini Node Cron
Nah dibawah ini versi lengkap expressjs
menggunakan package Node Cron yang akan saya jalankan setiap 2 detik sekali.
... const express = require('express'); const port = process.env.PORT || 3000; const app = express(); const dayjs = require('dayjs'); // Gunakan Nodecron dibawah ini // Fungsi Schedule const scheduleRunCron = async () => { const now = new Date(); const nowDate = dayjs(now).format('YYYY-MM-DD'); const nowTime = dayjs(now).format('HH:mm:ss'); console.log(`Date ${nowDate} and Time ${nowTime}`); }; // Cronjob akan berjalan tiap 2 detik. const cronjob = cron.schedule('*/2 * * * * *', async () => { scheduleRunCron(); }); cronjob.start() // Sebelum app listen dibawah ini app.listen(port, () => { console.log(`App running on ${port}`) })