concurrent-tasks
v3.0.2
Published
A simple task runner which will run tasks concurrently while maintaining limits.
Downloads
7,074
Maintainers
Readme
Introduction
Concurrent Tasks mimics a queue by using JavaScript's inbuilt array data type. Each task is a function which signals completion back to the runner.
The minimalism of Concurrent Tasks makes it an easy-to-use solution across any framework or flavour of JavaScript. It has ZERO dependencies and can be used virtually in any scenario. With a minified and gzipped size of 2.7kB, it is the ultimate lightweight tool for your concurrency needs.
- [x] Vanilla JavaScript
- [x] Frontend Frameworks (React, Vue, Angular, etc)
- [x] Backend Frameworks (Express, Hapi, Koa, etc)
- [x] NPM Module
- [x] Node CLI Application
Installation
Node
# NPM
npm i concurrent-tasks
# Yarn
yarn add concurrent-tasks
# PNPM
pnpm i concurrent-tasks
Browser
<script
src="https://cdn.jsdelivr.net/npm/concurrent-tasks/umd/concurrent-tasks.min.js"
type="text/javascript"
></script>
Bun
bun install concurrent-tasks
Deno
import { TaskRunner } from "https://cdn.jsdelivr.net/npm/concurrent-tasks/src/index.ts";
Usage
Important: Each task passed to the task runner, necessarily has to call the done function. If not, your queue won't process properly.
import TaskRunner from "concurrent-tasks";
const runner = new TaskRunner();
function generateTasks() {
const tasks = [];
let count = 1000;
while (count) {
tasks.push((done) => {
setTimeout(() => {
done();
}, Math.random() * 1000);
});
count--;
}
return tasks;
}
runner.addMultiple(generateTasks());
runner.start();