queue-start
Start queue workers to process jobs from registered queues.
npx balda queue-start
npx balda queue-start src/queues/**/*.ts
Arguments
pattern: Glob pattern for queue handler files (default:src/queues/**/*.{ts,js})
Flags
-p, --patterns <patterns...>: Additional glob patterns for queue handlers
What it does
- Loads queue handler files matching the provided patterns
- Registers all handlers decorated with queue decorators (
@queue.subscribe()) - Starts workers to process jobs from configured queue providers
- Keeps the process alive to continuously process jobs
Supported Queue Providers
- BullMQ (Redis-based)
- SQS (AWS Simple Queue Service)
- PG-Boss (PostgreSQL-based)
- Memory (In-memory, development only)
- Custom (Your own queue implementation)
Examples
# Use default pattern (src/queues/**/*.{ts,js})
npx balda queue-start
# Custom pattern
npx balda queue-start app/jobs/**/*.ts
# Multiple patterns
npx balda queue-start src/queues/**/*.ts --patterns src/jobs/**/*.ts
Queue Handler Example
import { memoryQueue } from 'balda';
type EmailPayload = {
to: string;
subject: string;
body: string;
};
const emailQueue = memoryQueue<EmailPayload>('emails');
export class EmailQueueHandler {
@emailQueue.subscribe()
async handle(payload: EmailPayload) {
console.log(`Sending email to ${payload.to}`);
// Process email sending logic
}
}
tip
Use this command in production to run dedicated queue worker processes. Separate your web servers from queue workers for better scalability.
info
Initialize queue providers first with npx balda init-queue and create handlers with npx balda generate-queue.