@vasto-queue/postgres-store
v0.1.0
Published
PostgreSQL storage adapter for Vasto
Maintainers
Readme
@vasto-queue/postgres-store
PostgreSQL storage adapter for Vasto.
Uses pg under the hood with FOR UPDATE SKIP LOCKED for safe, concurrent job dequeuing without external locking.
Installation
npm install @vasto-queue/postgres-store pgUsage
import { PostgresStore } from '@vasto-queue/postgres-store';
const store = new PostgresStore({
pool: {
host: 'localhost',
port: 5432,
database: 'myapp',
user: 'postgres',
password: 'secret',
},
});
// Create tables on startup
await store.migrate();Pass the store as a connection adapter to your queue config:
import { defineQueues, defineWorkers } from '@vasto-queue/core';
const queues = defineQueues({
default: {
name: 'default',
connection: 'postgres',
concurrency: 5,
batchSize: 10,
retry: { attempts: 3, maxAttempts: 3, backoff: 'exponential' },
},
});
const workers = defineWorkers({
main: {
queues: ['default'],
concurrency: 2,
workerModule: './worker-entry.js',
},
});
const storageAdapters = { postgres: store };Schema
The adapter auto-creates two tables via migrate():
| Table | Purpose |
|---|---|
| vasto_jobs | Active job queue |
| vasto_dead_letter | Exhausted / permanently failed jobs |
Configuration
| Option | Type | Default | Description |
|---|---|---|---|
| pool | Pool \| PoolConfig | — | pg Pool instance or config object |
| tableName | string | vasto_jobs | Jobs table name |
| deadLetterTableName | string | vasto_dead_letter | Dead-letter table name |
