CRON-scheduled asynchronous task manager.
The task manager ensures that a task's callback (even if asynchronous) will not run more than 1 execution concurrently.
npm i @nottimtam/taskman.js
import TaskMan from "@nottimtam/taskman.js";
const taskManager = new TaskMan();
const task = () => console.log("Hello, world!"); // The callback to run.
taskManager.createTask("my-task", task).schedule("*/5 * * * *"); // Run the task every 5 minutes.const { TaskManager } = require("@nottimtam/taskman.js");
const taskManager = new TaskManager();
const task = () => console.log("Hello, world!"); // The callback to run.
taskManager.createTask("my-task", task).schedule("*/5 * * * *"); // Run the task every 5 minutes.const { TaskManager, Task } = require("@nottimtam/taskman.js");import TaskManager, { Task } from "@nottimtam/taskman.js";Description: Manages tasks to ensure they do not run in parallel.
constructor()- Initializes an empty task manager.
tasks: An object that stores tasks by their identifier.
createTask(identifier, callback)- Creates a new task with the provided identifier and callback function.
- identifier: The unique identifier for the task.
- callback: The asynchronous function associated with the task.
- Returns: The newly created
Taskinstance.
Description: Represents a task with a unique identifier and a callback function. It can be initiated manually or scheduled using a cron job.
While tasks can be created and run independently of a task manager, creating them using a TaskManager's createTask method will keep your tasks housed in one container.
constructor(identifier, callback)- identifier: A unique identifier for the task (string).
- callback: The function to be executed when the task is initiated (function).
identifier: The unique identifier for the task.callback: The function associated with the task.running: Boolean indicating whether the task is currently running.started: Timestamp indicating when the task was started.
-
initiate()- Attempts to start the task. Logs a warning if the task is already running.
- Returns: A
Promisethat resolves once the task is completed.
-
schedule(time = "*/5 * * * *", timeZone = "default")- Schedules the task to run based on a cron schedule.
- time: The cron time string (defaults to every five minutes).
- timeZone: The timezone in which to operate the job (optional).
- Returns: The newly created
CronJobinstance.