task-queue-engine
v1.0.0
Published
An in-memory background job/task queue with priorities, delays, retries, concurrency control, and cron scheduling. No Redis required.
Maintainers
Readme
task-queue-engine
An in-memory background job/task queue for Node.js with priorities, delays, retries, concurrency control, and event hooks. No Redis required.
Installation
npm install task-queue-engineQuick Start
const { TaskQueue } = require('task-queue-engine');
const queue = new TaskQueue({ concurrency: 2, retries: 3 });
queue.process('sendEmail', async (data) => {
await sendEmail(data.to, data.subject);
return { sent: true };
});
queue.on('completed', (job, result) => console.log(`Job ${job.id} done`));
queue.on('failed', (job, err) => console.error(`Job ${job.id} failed: ${err.message}`));
queue.add('sendEmail', { to: '[email protected]', subject: 'Welcome!' });
queue.add('sendEmail', { to: '[email protected]', subject: 'Alert' }, { priority: 10 });API
new TaskQueue({ concurrency, retries, retryDelay })queue.process(name, handler)— Register job handlerqueue.add(name, data, { priority, delay, retries })— Add jobqueue.on(event, fn)— Events:added,active,completed,failed,retrying,drainedqueue.stats()— Get queue statisticsqueue.pause()/queue.start()— Pause/resumequeue.clear()/queue.shutdown()— Clear/shutdown
License
MIT
