1.1.42 • Published 11 months ago

@nottimtam/taskman.js v1.1.42

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

taskman.js

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.

Installation

npm i @nottimtam/taskman.js

Usage

ES6

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.

CJS

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.

Reference

Importing in CJS

const { TaskManager, Task } = require("@nottimtam/taskman.js");

Importing in ESM

import TaskManager, { Task } from "@nottimtam/taskman.js";

TaskManager

Description: Manages tasks to ensure they do not run in parallel.

Constructor

  • constructor()
    • Initializes an empty task manager.

Properties

  • tasks: An object that stores tasks by their identifier.

Methods

  • 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 Task instance.

Task

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

  • constructor(identifier, callback)
    • identifier: A unique identifier for the task (string).
    • callback: The function to be executed when the task is initiated (function).

Properties

  • 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.

Methods

  • initiate()

    • Attempts to start the task. Logs a warning if the task is already running.
    • Returns: A Promise that 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 CronJob instance.
1.1.42

11 months ago

1.1.41

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.1

11 months ago

1.1.0

11 months ago