@cinnabun/queue
v0.0.13
Published
Job queue system for Cinnabun with Redis and in-memory adapters
Maintainers
Readme
@cinnabun/queue
Job queue module for Cinnabun. Background jobs with Redis or in-memory adapters.
Installation
bun add @cinnabun/queueQuick Start
1. Configure the module
import { CinnabunApp, CinnabunFactory } from "@cinnabun/core";
import { QueueModule, QueuePlugin, MemoryAdapter } from "@cinnabun/queue";
@CinnabunApp({
port: 3000,
scanPaths: [],
imports: [
QueueModule.forRoot({
adapter: MemoryAdapter,
}),
],
plugins: [new QueuePlugin()],
})
class App {}
CinnabunFactory.run(App);2. Define jobs and processors
import { Processor, Job } from "@cinnabun/queue";
@Processor("email")
class EmailProcessor {
@Job("welcome")
async sendWelcome(data: { userId: string; email: string }) {
// Send welcome email
}
}3. Enqueue jobs
import { QueueService } from "@cinnabun/queue";
@RestController("/api")
class UserController {
constructor(private queue: QueueService) {}
@PostMapping("/users")
async create(@Body() body: CreateUserDto) {
const user = await this.userService.create(body);
await this.queue.add("email", "welcome", { userId: user.id, email: user.email });
return user;
}
}4. Run the worker
bun run cinnabun worker
# or
bun run node_modules/@cinnabun/queue/dist/worker-bootstrap.jsAdapters
- MemoryAdapter — In-memory (development)
- RedisAdapter — Redis-backed (production)
License
MIT
