From 4d7c7df909f1a3991a598a8c8a419917e2bc0afb Mon Sep 17 00:00:00 2001 From: Boki Date: Sun, 22 Jun 2025 20:55:26 -0400 Subject: [PATCH] removed dep methods --- libs/services/queue/README.md | 34 ++++++---- libs/services/queue/src/queue-manager.ts | 82 ------------------------ 2 files changed, 20 insertions(+), 96 deletions(-) diff --git a/libs/services/queue/README.md b/libs/services/queue/README.md index 8ea23c4..ab38abc 100644 --- a/libs/services/queue/README.md +++ b/libs/services/queue/README.md @@ -22,21 +22,24 @@ npm install @stock-bot/queue ### Basic Queue Setup ```typescript -import { QueueManager, providerRegistry } from '@stock-bot/queue'; +import { QueueManager, handlerRegistry } from '@stock-bot/queue'; -// Initialize queue manager +// Initialize queue manager (typically done via dependency injection) const queueManager = new QueueManager({ - queueName: 'my-service-queue', - workers: 5, - concurrency: 20, redis: { host: 'localhost', port: 6379, }, }); -// Register providers -providerRegistry.register('market-data', { +// Get or create a queue +const queue = queueManager.getQueue('my-service-queue', { + workers: 5, + concurrency: 20, +}); + +// Register handlers +handlerRegistry.register('market-data', { 'fetch-price': async (payload) => { // Handle price fetching return { price: 100, symbol: payload.symbol }; @@ -47,8 +50,7 @@ providerRegistry.register('market-data', { }, }); -// Initialize -await queueManager.initialize(); +// Queue is ready to use - no initialization needed ``` ### Batch Processing @@ -242,8 +244,10 @@ If you're migrating from an existing queue implementation: await queueService.initialize(); // After - const queueManager = new QueueManager(); - await queueManager.initialize(); + const queueManager = new QueueManager({ + redis: { host: 'localhost', port: 6379 } + }); + // No initialization needed ``` 3. **Update provider registration**: @@ -252,7 +256,7 @@ If you're migrating from an existing queue implementation: providerRegistry.register('provider', config); // After - queueManager.registerProvider('provider', config); + handlerRegistry.register('provider', config); ``` ## Examples @@ -281,12 +285,14 @@ See the `/examples` directory for complete implementation examples: 4. **Clean up periodically**: ```typescript - await queueManager.clean(24 * 60 * 60 * 1000); // Clean jobs older than 24h + const queue = queueManager.getQueue('my-queue'); + await queue.clean(24 * 60 * 60 * 1000); // Clean jobs older than 24h ``` 5. **Monitor queue stats**: ```typescript - const stats = await queueManager.getStats(); + const queue = queueManager.getQueue('my-queue'); + const stats = await queue.getStats(); console.log('Queue status:', stats); ``` diff --git a/libs/services/queue/src/queue-manager.ts b/libs/services/queue/src/queue-manager.ts index ad30fb6..b67c3e7 100644 --- a/libs/services/queue/src/queue-manager.ts +++ b/libs/services/queue/src/queue-manager.ts @@ -26,7 +26,6 @@ interface Logger { * Main entry point for all queue operations with getQueue() method */ export class QueueManager { - private static instance: QueueManager | null = null; private queues = new Map(); private caches = new Map(); private rateLimiter?: QueueRateLimiter; @@ -56,87 +55,6 @@ export class QueueManager { }); } - /** - * @deprecated Use dependency injection instead. This method will be removed in a future version. - * Get the singleton instance - * @throws Error if not initialized - use initialize() first - */ - static getInstance(): QueueManager { - // Deprecated warning - using console since we don't have a logger instance - // eslint-disable-next-line no-console - console.warn( - 'QueueManager.getInstance() is deprecated. Please use dependency injection instead.' - ); - if (!QueueManager.instance) { - throw new Error('QueueManager not initialized. Call QueueManager.initialize(config) first.'); - } - return QueueManager.instance; - } - - /** - * @deprecated Use dependency injection instead. This method will be removed in a future version. - * Initialize the singleton with config - * Must be called before getInstance() - */ - static initialize(config: QueueManagerConfig): QueueManager { - // Deprecated warning - using console since we don't have a logger instance - // eslint-disable-next-line no-console - console.warn( - 'QueueManager.initialize() is deprecated. Please use dependency injection instead.' - ); - if (QueueManager.instance) { - // eslint-disable-next-line no-console - console.warn('QueueManager already initialized, returning existing instance'); - return QueueManager.instance; - } - QueueManager.instance = new QueueManager(config); - return QueueManager.instance; - } - - /** - * @deprecated Use dependency injection instead. This method will be removed in a future version. - * Get or initialize the singleton - * Convenience method that combines initialize and getInstance - */ - static getOrInitialize(config?: QueueManagerConfig): QueueManager { - // Deprecated warning - using console since we don't have a logger instance - // eslint-disable-next-line no-console - console.warn( - 'QueueManager.getOrInitialize() is deprecated. Please use dependency injection instead.' - ); - if (QueueManager.instance) { - return QueueManager.instance; - } - - if (!config) { - throw new Error( - 'QueueManager not initialized and no config provided. ' + - 'Either call initialize(config) first or provide config to getOrInitialize(config).' - ); - } - - return QueueManager.initialize(config); - } - - /** - * @deprecated Use dependency injection instead. This method will be removed in a future version. - * Check if the QueueManager is initialized - */ - static isInitialized(): boolean { - return QueueManager.instance !== null; - } - - /** - * @deprecated Use dependency injection instead. This method will be removed in a future version. - * Reset the singleton (mainly for testing) - */ - static async reset(): Promise { - if (QueueManager.instance) { - await QueueManager.instance.shutdown(); - QueueManager.instance = null; - } - } - /** * Get or create a queue - unified method that handles both scenarios * This is the main method for accessing queues