Basic send with Task semantics
Basic send with Task semantics
import { Queue, createInMemory } from "@anabranch/queue"; const connector = createInMemory(); const queue = await Queue.connect(connector).run(); const messageId = await queue .send("notifications", { userId: 123, type: "welcome" }) .run();
Stream messages with concurrent processing and error collection
Stream messages with concurrent processing and error collection
const connector = createInMemory(); const queue = await Queue.connect(connector).run(); const { successes, errors } = await queue .stream("notifications") .withConcurrency(5) .map(async (msg) => await sendEmail(msg.data)) .tapErr((err) => logError(err)) .partition();
Delayed messages with visibility timeout
Delayed messages with visibility timeout
import { Queue, createInMemory } from "@anabranch/queue"; const connector = createInMemory({ visibilityTimeout: 60_000 }); const queue = await Queue.connect(connector).run(); await queue.send("notifications", reminder, { delayMs: 30_000 }).run();
Dead letter queue with max attempts
Dead letter queue with max attempts
import { Queue, createInMemory } from "@anabranch/queue"; const connector = createInMemory({ queues: { orders: { maxAttempts: 3, deadLetterQueue: "orders-dlq", }, }, }); const queue = await Queue.connect(connector).run(); await queue.nack("orders", msg.id, { deadLetter: true }).run();