
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
node-schedule
Advanced tools
The node-schedule npm package is a flexible cron-like and not-cron-like job scheduler for Node.js. It allows you to schedule jobs (arbitrary functions) for execution at specific dates, with optional recurrence rules. It is suitable for building job schedulers, task reminders, or any other automation based on time events.
One-time jobs
Schedule a job to be executed once at a specific date and time.
const schedule = require('node-schedule');
const date = new Date(2023, 3, 21, 5, 30, 0);
const job = schedule.scheduleJob(date, function() {
console.log('This job is run once at the specified date.');
});
Recurring jobs using cron-style scheduling
Schedule a job to be executed on a recurring basis using a cron string to specify the frequency.
const schedule = require('node-schedule');
const job = schedule.scheduleJob('*/5 * * * *', function() {
console.log('This job runs every 5 minutes.');
});
Recurring jobs using object literal syntax
Schedule a job using a more human-readable object literal syntax for setting the schedule.
const schedule = require('node-schedule');
const job = schedule.scheduleJob({hour: 14, minute: 30, dayOfWeek: 1}, function() {
console.log('This job runs at 2:30pm every Monday.');
});
Canceling jobs
Cancel a scheduled job before it is executed.
const schedule = require('node-schedule');
const job = schedule.scheduleJob('*/5 * * * *', function() {
console.log('This job will be canceled.');
});
job.cancel();
The 'cron' package is similar to node-schedule and is used for scheduling jobs to run at specific times or intervals. It uses the Unix cron string format to define schedules and is widely used for its simplicity and familiarity to those with Unix/Linux experience.
Agenda is a more feature-rich job scheduling library for Node.js. It supports persistence with MongoDB, which allows scheduled jobs to be stored and run across server restarts. It also offers more control over job queuing and locking, making it suitable for more complex scheduling needs.
Bull is a Redis-based queue system for Node.js. It is often used for job scheduling as well as for processing distributed jobs in the background. It offers advanced features like repeatable jobs, rate limiting, and job prioritization, making it a good choice for high-performance job processing.
Bree is a job scheduler for Node.js that supports cron, dates, ms (milliseconds), later, and human-friendly strings for job scheduling. It uses workers for parallel job processing and includes support for job timeouts and graceful cancellation. It's a modern alternative with a focus on reliability and concurrency.
FAQs
A cron-like and not-cron-like job scheduler for Node.
We found that node-schedule demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.