Introduction to Contab
Contab is a powerful task scheduling tool designed to simplify automation processes. It allows users
to schedule, automate, and manage various tasks efficiently. This guide will help you understand the basics
of Contab and explore its diverse APIs with practical code snippets and an example application.
Getting Started
To begin using Contab, you need to install it using npm:
npm install contab
Basic API Usage
Here are some fundamental actions you can perform using Contab’s APIs:
1. Creating a Task
const contab = require('contab');
const task = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight');
});
This code schedules a job to run daily at midnight.
2. Cancelling a Task
const contab = require('contab');
const task = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight');
});
task.cancel(); // Cancels the scheduled task
The above snippet demonstrates how to cancel a scheduled task.
3. Getting All Scheduled Jobs
const contab = require('contab');
const task1 = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight');
});
const task2 = contab.scheduleJob('0/5 * * * *', () => {
console.log('Running every 5 minutes');
});
const allTasks = contab.jobStore.getAll();
console.log(allTasks); // Outputs all scheduled tasks
This example shows how to retrieve all scheduled jobs.
Advanced Usage
Dive deeper into Contab with these advanced functionalities:
1. Rescheduling a Task
const contab = require('contab');
const task = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight');
});
task.reschedule('0 12 * * *'); // Reschedules to run daily at noon
Rescheduling a task with a new cron expression is straightforward as shown.
2. Handling Concurrent Jobs
const contab = require('contab');
const task1 = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight - Task 1');
});
const task2 = contab.scheduleJob('0 0 * * *', () => {
console.log('Running daily at midnight - Task 2');
});
contab.jobStore.getAll().forEach((job) => {
job.invoke();
}); // Manually invoking all jobs at once
This snippet shows how to manually trigger all scheduled jobs concurrently.
Building a Task Scheduler App with Contab
Let’s create a simple task scheduler application using the Contab API:
App Setup
const express = require('express');
const contab = require('contab');
const app = express();
const port = 3000;
app.use(express.json());
app.post('/schedule', (req, res) => {
const { cronTime, taskName } = req.body;
contab.scheduleJob(cronTime, () => {
console.log(`Executing task: ${taskName}`);
});
res.send('Task scheduled successfully');
});
app.listen(port, () => {
console.log(`Task scheduler app listening at http://localhost:${port}`);
});
In this example, we set up an Express application where users can schedule tasks by sending a POST request
with a cron expression and task name.
Contab simplifies task scheduling and automation, making it an essential tool for developers who need
to manage periodic tasks efficiently. Get started with Contab today to streamline your workflow!
Hash: 069190d0937b9f6efae7f20bf8dcd4da4af5cd0a18888fe793c28187810fc9d9