groupq
v1.0.1
Published
Redis-based distributed queue for Node.js with group support
Maintainers
Readme
GroupQ
GroupQ is a Redis-based distributed queue system for Node.js, forked from BullMQ. This fork adds group support functionality while maintaining full compatibility with BullMQ.
Features
- ✅ All BullMQ features (priorities, delayed jobs, repeatable jobs, rate limiting, etc.)
- ✅ Group support - Enhanced grouping capabilities for job management
- ✅ Parent/Child job dependencies
- ✅ Atomic operations
- ✅ Fully compatible with BullMQ API
Installation
npm install groupqor
yarn add groupqQuick Start
Add jobs to the queue
import { Queue } from 'groupq';
const queue = new Queue('Paint');
queue.add('cars', { color: 'blue' });Process jobs with workers
import { Worker } from 'groupq';
const worker = new Worker('Paint', async job => {
if (job.name === 'cars') {
await paintCar(job.data.color);
}
});Listen to job events
import { QueueEvents } from 'groupq';
const queueEvents = new QueueEvents('Paint');
queueEvents.on('completed', ({ jobId }) => {
console.log('Job completed:', jobId);
});
queueEvents.on('failed', ({ jobId, failedReason }) => {
console.error('Job failed:', jobId, failedReason);
});Parent-child job relationships
import { FlowProducer } from 'groupq';
const flow = new FlowProducer();
await flow.add({
name: 'root-job',
queueName: 'topQueueName',
data: {},
children: [
{
name: 'child-job',
data: { idx: 0, foo: 'bar' },
queueName: 'childrenQueueName',
},
],
});Documentation
For detailed documentation, see the BullMQ documentation - GroupQ is fully compatible with BullMQ's API.
Credits
This package is based on BullMQ, originally created by BullForce Labs AB (now Taskforce.sh Inc.) and contributors.
Original Repository: https://github.com/taskforcesh/bullmq
Original License: MIT
Original Copyright: Copyright (c) 2018 BullForce Labs AB and contributors
We extend our gratitude to the original authors and contributors for their excellent work on BullMQ.
License
MIT
