npm install pinepack
import { Queue } from "pinepack";
const queue = new Queue({ name: "emails" });
queue.process(async (job) => {
await sendEmail(job.data);
});
await queue.enqueue({ to: "user@example.com", subject: "Welcome" });
Jobs are persisted to a local SQLite file by default (pinepack.db). For production, point Queue at a Postgres connection string via the connection option.
By default, failed jobs retry 3 times with exponential backoff. Configure this per-queue:
const queue = new Queue({ name: "emails", retries: 5, backoff: "exponential" });