Iman Sugirman
Iman Sugirman
Fullstack Developer, Software Engineer, Frontend Developer

Setup Cronjob Menggunakan Nodejs

23 Oktober 2022

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.

Install Nodecron untuk menggunakan Cronjob

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}`) })