@psyqueue/plugin-exactly-once
v0.1.0
Published
> Exactly-once delivery for PsyQueue via idempotency key deduplication.
Readme
@psyqueue/plugin-exactly-once
Exactly-once delivery for PsyQueue via idempotency key deduplication.
Installation
npm install @psyqueue/plugin-exactly-onceUsage
import { exactlyOnce } from '@psyqueue/plugin-exactly-once'
q.use(exactlyOnce({ window: '24h', onDuplicate: 'ignore' }))
// First call: creates job
const id1 = await q.enqueue('task', data, { idempotencyKey: 'order-123' })
// Duplicate call: returns same ID, no new job
const id2 = await q.enqueue('task', data, { idempotencyKey: 'order-123' })
// id1 === id2Configuration
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| window | string | '24h' | Dedup window ('500ms', '30s', '5m', '1h', '7d') |
| onDuplicate | 'ignore' \| 'reject' | 'ignore' | Action on duplicate |
| cleanupInterval | string | '1h' | Expired key cleanup interval |
Depends on: backend
Documentation
See Reliability Plugins for detailed usage.
License
MIT
