
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
redis-scheduler-js
Advanced tools
`redis-scheduler` is a powerful Node.js package that allows you to manage scheduled tasks using Redis. With this package, you can create, retrieve, update, and delete scheduled tasks, as well as listen for webhook events.
redis-scheduler
is a powerful Node.js package that allows you to manage scheduled tasks using Redis. With this package, you can create, retrieve, update, and delete scheduled tasks, as well as listen for webhook events.
You can install redis-scheduler
via npm:
npm install redis-scheduler-js
You can create an instance of the RedisScheduler
with an internal webhook server by specifying the port.
import RedisScheduler from 'redis-scheduler-js';
const scheduler = new RedisScheduler({
enableWebServerOnPort: 3000, // Port for the webhook server
authorization: 'your-authorization-token',
instanceUrl: 'https://your-instance-url.com', // Your instance URL
});
You can also use redis-scheduler-js
with an existing Express application.
import express from 'express';
import RedisScheduler from 'redis-scheduler-js';
const app = express();
const scheduler = new RedisScheduler({
authorization: 'your-authorization-token',
instanceUrl: 'https://your-instance-url.com', // Your instance URL
});
// Middleware to parse JSON
app.use(express.json());
// Custom webhook endpoint
app.post('/custom-webhook', (req, res) => {
try {
scheduler.onWebhook(req.body, req.headers['authorization'] || '');
res.json({ status: 'success' });
} catch (error) {
res.status(400).json({ status: 'error', message: error.message });
}
});
// Start your Express server
app.listen(3000, () => {
console.log('Express server is running on http://localhost:3000');
});
const key = await scheduler.schedule({
webhook: 'https://example.com/webhook',
ttl: 60,
data: { message: 'Hello, World!' }
});
console.log('Scheduled key:', key);
You can also group your data into custom types for better organization. Here's an example:
const key = await scheduler.schedule({
webhook: 'https://example.com/webhook',
ttl: 60,
data: { message: 'Hello, World!' }
}, 'custom-type');
console.log('Scheduled key:', key);
const schedule = await scheduler.getSchedule(key);
console.log('Scheduled task:', schedule);
const schedules = await scheduler.getAllSchedules();
console.log('All scheduled tasks:', schedules);
Or you can filter tasks by type:
const schedules = await scheduler.getAllSchedules('custom-type');
console.log('Filtered scheduled tasks:', schedules);
const success = await scheduler.updateSchedule(key, {
ttl: 120, // this is 120 seconds from now
data: { message: 'Updated message' }
});
console.log('Update successful:', success);
const success = await scheduler.deleteSchedule(key);
console.log('Delete successful:', success);
const stats = await scheduler.getStats();
console.log('Scheduler stats:', stats);
You can listen for webhook events using the event emitter feature. Here's an example:
// Listening for incoming webhook events
scheduler.on('data', (data) => {
console.log('Webhook event received:', data);
});
// Example webhook payload
const webhookPayload = {
message: 'This is a webhook event!',
};
// Simulating webhook call
scheduler.onWebhook(webhookPayload, 'authorization-token-from-request-headers');
If you are using TypeScript, you can define custom types for your webhook events. Here’s an example:
interface CustomWebhookData {
message: string;
}
scheduler.on<CustomWebhookData>('data', (data) => {
console.log('Webhook message:', data.message);
});
// Simulating webhook call with typed data
const webhookPayload: CustomWebhookData = {
message: 'This is a typed webhook event!',
};
scheduler.onWebhook(webhookPayload, 'authorization-token-from-request-headers');
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
`redis-scheduler` is a powerful Node.js package that allows you to manage scheduled tasks using Redis. With this package, you can create, retrieve, update, and delete scheduled tasks, as well as listen for webhook events.
We found that redis-scheduler-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.