How to schedule tasks in Node.js
Scheduling recurring tasks is essential for automation, from database cleanups to periodic data synchronization and report generation. As the creator of CoreUI, a widely used open-source UI library, I’ve implemented task scheduling in Node.js backends throughout my 11 years of server-side development. The most straightforward approach is using the node-cron package, which provides a simple cron-like syntax for scheduling tasks. This method offers flexible scheduling without external dependencies or system cron configuration.
Use node-cron to schedule tasks with cron expressions.
const cron = require('node-cron')
cron.schedule('0 0 * * *', () => {
console.log('Running daily cleanup at midnight')
// Cleanup logic here
})
cron.schedule('*/15 * * * *', () => {
console.log('Running every 15 minutes')
// Sync logic here
})
cron.schedule('0 9 * * 1', () => {
console.log('Running every Monday at 9 AM')
// Weekly report logic here
})
Here the cron.schedule method takes a cron expression and callback function. The first schedule runs daily at midnight (0 0 * * *), the second runs every 15 minutes (*/15 * * * *), and the third runs every Monday at 9 AM (0 9 * * 1). Tasks execute automatically in the background while your Node.js application runs.
Best Practice Note:
This is the approach we use in CoreUI backend services for scheduled maintenance tasks and data processing. Always wrap task logic in try-catch blocks to prevent unhandled errors from crashing your application, and consider using task queues like Bull for complex scheduling requirements or distributed systems.



