PidginMQ is a job queuing and task scheduling library for Node.js and JavaScript, built on PostgreSQL.
The library is heavily inspired by River
YARN:
yarn add pidginmq
NPM:
npm install pidginmq -S
- Node 18 or higher
- PostgreSQL 11 or higher
- Cron scheduling
- Recurring Jobs
- Deferred jobs
- Automatic retries (with exponential backoff)
- Configurable job timeouts
- Direct table access for bulk loads
Initialize the schema for PidginMQ in the database by running the script 01_create_initial_schema.sql, which can be found in the migration folder.
Create a client:
const options = {
workers: new Workers(),
queues: new Map<string, QueueConfig>(),
dbConfig: {
host: 'localhost',
port: 5432,
user: 'pidginmq',
password: 'Password1',
database: 'pidginmq',
ssl: false,
},
};
this.client = new Client(options);
this.client.start();
Stop the client:
this.client.stop();
Add a worker:
this.client.addWorker('test', (job) => {
console.info(`Processing job:`, JSON.stringify(job));
});
Add a job:
await this.client.addJob({
kind: 'test',
queue: 'test-queue',
});
To setup a development environment for this library:
git clone https://github.com/timgit/pg-boss.git
npm install
To run the test suite and code coverage:
npm run test:cov
PidginMQ is released under MIT License.