@galaxy-stack/orbit-queue
v0.9.0
Published
Job queue for Orbit — Redis driver (Bun native client, zero deps) + memory driver, retries with backoff, delayed jobs
Readme
@galaxy-stack/orbit-queue
Job queue for Orbit — pluggable drivers (memory included), retries with backoff, delayed jobs.
Part of the Orbit framework — a NestJS-style backend framework for Bun.
Installation
bun add @galaxy-stack/orbit-queueUsage
import { QueueModule, QueueService, Module } from '@galaxy-stack/orbit-queue';
@Module({
imports: [QueueModule.forRoot({ concurrency: 2, retryDelayMs: 500 })],
})
export class AppModule {}
// anywhere with DI:
constructor(private queue: QueueService) {}
// register a worker
this.queue.register('send-email', {
process: async (job) => { /* job.data */ },
onFailed: (job, err) => { /* dead-letter */ },
maxAttempts: 5,
});
this.queue.start();
await this.queue.add('send-email', { to: '[email protected]' }, { delayMs: 5000 });Redis driver
Uses Bun's native Redis client — no extra dependency:
QueueModule.forRoot({ driver: 'redis', redisUrl: 'redis://localhost:6379', redisPrefix: 'orbit:queue' })Atomic claims (Lua EVAL) so multiple workers never receive the same job. Jobs live in a ZSET scored by runAt.
Memory driver included for local development; implement QueueDriver for other backends.
License
MIT
