/** * Proxy Queue Operations - Queueing proxy operations */ import { OperationContext } from '@stock-bot/di'; import type { ProxyInfo } from '@stock-bot/proxy'; import type { IServiceContainer } from '@stock-bot/handlers'; export async function queueProxyFetch(container: IServiceContainer): Promise { const ctx = OperationContext.create('proxy', 'queue-fetch'); const queueManager = container.queue; if (!queueManager) { throw new Error('Queue manager not available'); } const queue = queueManager.getQueue('proxy'); const job = await queue.add('proxy-fetch', { handler: 'proxy', operation: 'fetch-and-check', payload: {}, priority: 5, }); const jobId = job.id || 'unknown'; ctx.logger.info('Proxy fetch job queued', { jobId }); return jobId; } export async function queueProxyCheck(proxies: ProxyInfo[], container: IServiceContainer): Promise { const ctx = OperationContext.create('proxy', 'queue-check'); const queueManager = container.queue; if (!queueManager) { throw new Error('Queue manager not available'); } const queue = queueManager.getQueue('proxy'); const job = await queue.add('proxy-check', { handler: 'proxy', operation: 'check-specific', payload: { proxies }, priority: 3, }); const jobId = job.id || 'unknown'; ctx.logger.info('Proxy check job queued', { jobId, count: proxies.length }); return jobId; }