Releases: noxify/vorsteh-queue
Releases · noxify/vorsteh-queue
[email protected]
Minor Changes
-
8527495: # 🚀 Initial Release - Project Scaffolding CLI
Interactive CLI tool for creating new Vorsteh Queue projects with zero configuration.
✨ Features
- Interactive prompts with beautiful UI powered by @clack/prompts
- Dynamic template discovery - Automatically fetches available templates from GitHub
- Multiple package managers - Support for npm, pnpm, yarn, and bun
- CLI flags for automation and scripting
- Quiet mode for CI/CD environments
🎯 Usage Options
Interactive Mode
npx create-vorsteh-queue # Prompts for project name, template, and package managerDirect Mode
npx create-vorsteh-queue my-app --template=drizzle-pglite --package-manager=pnpm --no-install # Fully automated project creationCLI Flags
--template=<name>or-t=<name>- Choose template--package-manager=<pm>or-pm=<pm>- Package manager (npm/pnpm/yarn/bun)--no-install- Skip dependency install--quietor-q- Minimal output for automation
📦 Available Templates
Templates are dynamically discovered from the repository:
- drizzle-pg - Basic example using Drizzle ORM with node-postgres (pg)
- drizzle-pglite - Zero-setup example using Drizzle ORM with PGlite (embedded PostgreSQL)
- drizzle-postgres - Advanced example using Drizzle ORM with postgres.js and recurring jobs
- event-system - Comprehensive event monitoring and statistics using Drizzle ORM with postgres.js
- pm2-workers - Manage multiple Vorsteh Queues with PM2 using Drizzle ORM with postgres.js
- progress-tracking - Real-time job progress tracking using Drizzle ORM with postgres.js
@vorsteh-queue/[email protected]
Minor Changes
-
8527495: # 🚀 Initial Release - Core Queue Engine
The foundational package providing the core queue functionality and interfaces.
✨ Features
- Type-safe job processing with full TypeScript support and generic job payloads
- Priority queue system with numeric priority (lower = higher priority)
- Delayed job scheduling for future execution with precise timing
- Recurring jobs with cron expressions and interval-based repetition
- Timezone-aware scheduling with automatic DST handling
- Real-time progress tracking for long-running jobs (0-100%)
- Comprehensive event system for monitoring job lifecycle
- Graceful shutdown with clean job processing termination
🎛️ Queue Configuration
- Flexible job cleanup -
removeOnComplete/removeOnFailsupport boolean or number - Configurable concurrency - Process multiple jobs simultaneously
- Retry logic with exponential backoff and max attempts
- Job timeouts and comprehensive error handling
- Queue statistics and health monitoring
📊 Event System
- Job lifecycle events:
job:added,job:processing,job:completed,job:failed,job:retried,job:progress - Queue events:
queue:paused,queue:resumed,queue:stopped,queue:error - Type-safe event handlers with proper TypeScript support
🌍 Timezone Support
- Schedule jobs in any IANA timezone with automatic DST transitions
- Complex cron expressions with timezone awareness
- UTC-first storage with timezone-aware calculations
- Reliable cross-timezone job scheduling
🔌 Adapter Pattern
- Pluggable storage backends - Easy to add new database adapters
- Consistent interface - Same API across all storage implementations
- Built-in memory adapter - Perfect for testing and development
- Transaction support - Atomic job operations where supported
@vorsteh-queue/[email protected]
Minor Changes
-
8527495: # 🚀 Initial Release - Drizzle ORM Adapter
Database adapter supporting PostgreSQL and MariaDB/MySQL via Drizzle ORM.
🗄️ Database Support
PostgreSQL
- PostgreSQL 12+ with SKIP LOCKED support for concurrent processing
- Multiple drivers: node-postgres, postgres.js, PGlite
- Full feature support: JSONB payloads, UUID primary keys, timezone-aware timestamps
- Connection pooling and transaction support
MariaDB/MySQL
- MariaDB 10.6+ and MySQL 8.0+ with SKIP LOCKED functionality
- mysql2 driver with promise support and connection pooling
- JSON payloads with proper serialization/deserialization
- UUID compatibility using VARCHAR(36) with MySQL UUID() function
⚡ Performance Features
- SKIP LOCKED queries for high-concurrency job processing without lock contention
- Optimized indexes on queue_name, status, priority, and process_at columns
- Efficient job retrieval with priority-based ordering and creation time fallback
- Batch operations for job cleanup and maintenance
🔧 Schema Management
- Exported schemas -
postgresSchemaandmariadbSchemafor easy integration - Drizzle Kit support - Generate and run migrations with your existing schema
- Type-safe queries - Full TypeScript support with Drizzle's query builder
- Flexible integration - Works with existing Drizzle setups
📦 Easy Integration
with PostgreSQL:
// PostgreSQL import { PostgresQueueAdapter, postgresSchema } from "@vorsteh-queue/adapter-drizzle" const db = drizzle(pool, { schema: postgresSchema }) const adapter = new PostgresQueueAdapter(db, "my-queue")
with MariaDB/MySQL:
// MariaDB/MySQL import { MariaDBQueueAdapter, mariadbSchema } from "@vorsteh-queue/adapter-drizzle" const db = drizzle(connection, { schema: mariadbSchema }) const adapter = new MariaDBQueueAdapter(db, "my-queue")
Patch Changes
- Updated dependencies [8527495]
- @vorsteh-queue/[email protected]