Create BullMQ module that shares the existing Valkey connection for job queue processing. Files Created: - apps/api/src/bullmq/bullmq.module.ts - Global module configuration - apps/api/src/bullmq/bullmq.service.ts - Queue management service - apps/api/src/bullmq/queues.ts - Queue name constants - apps/api/src/bullmq/index.ts - Barrel exports - apps/api/src/bullmq/bullmq.service.spec.ts - Unit tests Files Modified: - apps/api/src/app.module.ts - Import BullMqModule Queue Definitions: - mosaic-jobs (main queue) - mosaic-jobs-runner (read-only operations) - mosaic-jobs-weaver (write operations) - mosaic-jobs-inspector (validation operations) Implementation: - Reuses VALKEY_URL from environment (shared connection) - Follows existing Valkey module patterns - Includes health check methods - Proper lifecycle management (init/destroy) - Queue names use hyphens instead of colons (BullMQ requirement) Quality Gates: - Unit tests: 11 passing - TypeScript: No errors - ESLint: No violations - Build: Successful Co-Authored-By: Claude Opus 4.5 <[email protected]>
39 lines
882 B
TypeScript
39 lines
882 B
TypeScript
/**
|
|
* Queue name constants for BullMQ
|
|
*
|
|
* These queue names follow the mosaic:jobs:* convention
|
|
* and align with the Mosaic Component Architecture (agent profiles).
|
|
*/
|
|
|
|
export const QUEUE_NAMES = {
|
|
/**
|
|
* Main job queue - general purpose jobs
|
|
*/
|
|
MAIN: "mosaic-jobs",
|
|
|
|
/**
|
|
* Runner profile jobs - read-only operations
|
|
* - Fetches information
|
|
* - Gathers context
|
|
* - Reads repositories
|
|
*/
|
|
RUNNER: "mosaic-jobs-runner",
|
|
|
|
/**
|
|
* Weaver profile jobs - write operations
|
|
* - Implements code changes
|
|
* - Writes files
|
|
* - Scoped to worktree
|
|
*/
|
|
WEAVER: "mosaic-jobs-weaver",
|
|
|
|
/**
|
|
* Inspector profile jobs - validation operations
|
|
* - Runs quality gates (build, lint, test)
|
|
* - No modifications allowed
|
|
*/
|
|
INSPECTOR: "mosaic-jobs-inspector",
|
|
} as const;
|
|
|
|
export type QueueName = (typeof QUEUE_NAMES)[keyof typeof QUEUE_NAMES];
|