Introduction to Node-Schedule
node-schedule
is a flexible job scheduling library for Node.js, allowing you to execute tasks and callbacks at specific times or intervals. It provides a wealth of APIs to handle different scheduling scenarios, making it an essential tool for server-side developers.
Installing Node-Schedule
npm install node-schedule
Scheduling a Job
To simply schedule a job, you can use the scheduleJob
method. Here’s how:
const schedule = require('node-schedule'); const job = schedule.scheduleJob('*/1 * * * *', function(){ console.log('The job runs every minute!'); });
Canceling a Job
To cancel a scheduled job, you can use the cancel
method:
job.cancel();
Rescheduling a Job
If you need to reschedule a job, use the rescheduleJob
method:
const newRule = new schedule.RecurrenceRule(); newRule.hour = 2; schedule.rescheduleJob(job, newRule);
Cron Syntax
You can also use cron syntax for job scheduling with the Cron-style Scheduler:
schedule.scheduleJob('42 2 * * *', function(){ console.log('This job runs daily at 2:42 AM'); });
Handling Recurrence Rule Objects
Create more customized schedule rules using Recurrence Rules:
const rule = new schedule.RecurrenceRule(); rule.dayOfWeek = [0, new schedule.Range(1, 5)]; rule.hour = 17; rule.minute = 30; const dailyJob = schedule.scheduleJob(rule, function(){ console.log('Job is being executed according to the RecurrenceRule'); });
Advanced Recurrence Rules
Complex schedules can be created with the RecurrenceRule class. Here’s an example:
const advancedRule = new schedule.RecurrenceRule(); advancedRule.second = new schedule.Range(0, 59, 10); schedule.scheduleJob(advancedRule, function(){ console.log('This job runs every 10 seconds'); });
Application Example: Task Scheduling App
Here’s a simple task scheduling application using node-schedule to handle periodic tasks:
const express = require('express'); const schedule = require('node-schedule'); const app = express(); const backupJob = schedule.scheduleJob({ hour: 2, minute: 30 }, function(){ console.log('Running daily backup'); // Backup logic here }); const cleanupJob = schedule.scheduleJob({ hour: 4, minute: 0 }, function(){ console.log('Running daily cleanup'); // Cleanup logic here }); app.listen(3000, () => { console.log('Task scheduling app listening on port 3000'); });
This application demonstrates the power of node-schedule in managing daily tasks such as backups and cleanups.
Hash: 740dda24e71eb070cf551fa4af7f5b6da5dfcb98432ab89e876bdc992a859d58