
Security News
PolinRider: North Korea-Linked Supply Chain Campaign Expands Across Open Source Ecosystems
PolinRider expands across npm, Packagist, Go modules, and Chrome extensions, using hidden loaders to target developer environments.
minionpool
Advanced tools
minionpool allows you to concurrently process any tasks you need to (similar to a worker pool). And it's very simple to use.
The npm package is called minionpool.
First things first. To make use of this, you just have to provide a few callbacks, then instantiate a MinionPool and start() it. A MinionPool has Minions, that process tasks. Tasks are provided by a task source, which is called to get one task at a time, one for each minion started, and one for each minion that finishes a previous task.
Both the minions and the task source can keep a state, which is useful to keep database connections for example.
var minionpoolMod = require('./src/minionpool');
try {
var minionPool = new minionpoolMod.MinionPool(options);
minionPool.start();
} catch(error) {
console.log(util.inspect(error));
}
Let's see now what can be defined inside the options that we're passing to the MinionPool constructor:
var options = {
// A name for your minions pool, useful for debugging.
name: 'MyPool',
// When 'true', some messages are written to console.
debug: false,
// How many minions to run concurrently.
concurrency: 10,
// Called to initialize a 'task source'. It should call the callback with
// an initial 'state' (like db connections, file descriptors, etc). See below.
// The state will be passed when calling the next property.
taskSourceInit: function(callback) {
callback({});
},
// The task source produce 'tasks', that are assigned to minions. A task
// source receives its previous state, and should return a new (or the same)
//state. Also, it should call the callback with the new task (or
// 'undefined' when none is found).
taskSource: function(state, callback) {
var task = ...;
callback(task);
return newState;
},
// Called to do any cleanup for the task generator once it runs out of tasks.
taskSourceTerminate: function(state) {
},
// Called to initialize each one of the minions. Returns the initial state for
// each one of them.
minionInit: function(id) {
return {};
},
// The actual code that works on a task. Should call the 'callback' when
// done, passing the minionId, the task received, and the result for that task.
taskHandler: function(minionId, task, state, callback) {
callback(minionId, task, {});
}
};
See this.
FAQs
A simple task-consumer pool for nodejs
The npm package minionpool receives a total of 0 weekly downloads. As such, minionpool popularity was classified as not popular.
We found that minionpool demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Security News
PolinRider expands across npm, Packagist, Go modules, and Chrome extensions, using hidden loaders to target developer environments.

Security News
Open source attacks are accelerating as AI coding agents pull in dependencies faster, with less human review.

Research
/Security News
Malicious Chrome and Firefox extensions posed as free VPNs while stealing clipboard data through later extension updates.