11<div align =" center " >
22 <img src =" ./assets/vorsteh-queue-logo-nobg.png " alt =" Vorsteh Queue " height =" 200 " />
33 <h1 >Vorsteh Queue</h1 >
4- <p >A TypeScript-first job queue system with multiple database adapters, built for reliability and developer experience .</p >
4+ <p >A powerful, ORM-agnostic queue engine that works with any orm. Handle background jobs, scheduled tasks, and recurring processes with ease .</p >
55</div >
66
77## Features
88
99- ** Type-safe** : Full TypeScript support with generic job payloads
10- - ** Multiple adapters** : Drizzle ORM and in-memory implementations (Prisma coming soon)
10+ - ** Multiple adapters** : Drizzle ORM (PostgreSQL + MariaDB/MySQL) and in-memory implementations
1111- ** Priority queues** : Numeric priority system (lower = higher priority)
1212- ** Delayed jobs** : Schedule jobs for future execution
1313- ** Recurring jobs** : Cron expressions and interval-based repetition
2222.
2323├── packages/
2424│ ├── core/ # Core queue logic and interfaces
25- │ ├── adapter-drizzle/ # Drizzle ORM adapter
25+ │ ├── adapter-drizzle/ # Drizzle ORM adapter (PostgreSQL + MariaDB/MySQL)
2626│ └── adapter-prisma/ # Prisma adapter (coming soon)
2727├── examples/ # Standalone usage examples
2828│ ├── drizzle-pg/ # Drizzle + node-postgres
@@ -46,16 +46,30 @@ pnpm add @vorsteh-queue/core @vorsteh-queue/adapter-drizzle
4646### Basic Usage
4747
4848``` typescript
49+ // PostgreSQL
4950import { drizzle } from " drizzle-orm/node-postgres"
5051import { Pool } from " pg"
51-
52- import { DrizzleQueueAdapter } from " @vorsteh-queue/adapter-drizzle"
52+ import { PostgresQueueAdapter } from " @vorsteh-queue/adapter-drizzle"
5353import { Queue } from " @vorsteh-queue/core"
5454
55- // Setup database and queue
5655const pool = new Pool ({ connectionString: " postgresql://..." })
5756const db = drizzle (pool )
58- const adapter = new DrizzleQueueAdapter (db , " my-queue" )
57+ const adapter = new PostgresQueueAdapter (db , " my-queue" )
58+ const queue = new Queue (adapter , { name: " my-queue" })
59+
60+ // MariaDB/MySQL
61+ import { drizzle } from " drizzle-orm/mysql2"
62+ import mysql from " mysql2/promise"
63+ import { MariaDBQueueAdapter } from " @vorsteh-queue/adapter-drizzle"
64+
65+ const connection = await mysql .createConnection ({
66+ host: " localhost" ,
67+ user: " root" ,
68+ password: " password" ,
69+ database: " queue_db"
70+ })
71+ const db = drizzle (connection , { mode: " default" })
72+ const adapter = new MariaDBQueueAdapter (db , " my-queue" )
5973const queue = new Queue (adapter , { name: " my-queue" })
6074
6175// Register job handlers
@@ -241,9 +255,14 @@ queue.on("queue:resumed", () => {
241255# Install dependencies
242256pnpm install
243257
244- # Run tests
258+ # Run all tests
245259pnpm test
246260
261+ # Run specific test suites
262+ pnpm test:core # Core package tests
263+ pnpm test:drizzle-postgres # PostgreSQL adapter tests
264+ pnpm test:drizzle-mariadb # MariaDB adapter tests
265+
247266# Type check
248267pnpm typecheck
249268
0 commit comments