removed dep methods

This commit is contained in:
Boki 2025-06-22 20:55:26 -04:00
parent 190b725149
commit 4d7c7df909
2 changed files with 20 additions and 96 deletions

View file

@ -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);
```

View file

@ -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<string, Queue>();
private caches = new Map<string, CacheProvider>();
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<void> {
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