41 lines
No EOL
1.3 KiB
TypeScript
41 lines
No EOL
1.3 KiB
TypeScript
import { getLogger } from '@stock-bot/logger';
|
|
import { handlerRegistry, type HandlerConfig, type ScheduledJobConfig } from '@stock-bot/queue';
|
|
import { symbolOperations } from './operations';
|
|
|
|
const logger = getLogger('symbols-handler');
|
|
|
|
const HANDLER_NAME = 'symbols';
|
|
|
|
const symbolsHandlerConfig: HandlerConfig = {
|
|
concurrency: 1,
|
|
maxAttempts: 3,
|
|
scheduledJobs: [
|
|
{
|
|
operation: 'sync-qm-symbols',
|
|
cronPattern: '0 2 * * *', // Daily at 2 AM
|
|
payload: {},
|
|
priority: 5,
|
|
immediately: false,
|
|
} as ScheduledJobConfig,
|
|
{
|
|
operation: 'sync-symbols-qm',
|
|
cronPattern: '0 4 * * *', // Daily at 4 AM
|
|
payload: { provider: 'qm', clearFirst: false },
|
|
priority: 5,
|
|
immediately: false,
|
|
} as ScheduledJobConfig,
|
|
],
|
|
operations: {
|
|
'sync-qm-symbols': symbolOperations.syncQMSymbols,
|
|
'sync-symbols-qm': symbolOperations.syncSymbolsFromProvider,
|
|
'sync-symbols-eod': symbolOperations.syncSymbolsFromProvider,
|
|
'sync-symbols-ib': symbolOperations.syncSymbolsFromProvider,
|
|
'sync-status': symbolOperations.getSyncStatus,
|
|
},
|
|
};
|
|
|
|
export function initializeSymbolsHandler(): void {
|
|
logger.info('Registering symbols handler...');
|
|
handlerRegistry.registerHandler(HANDLER_NAME, symbolsHandlerConfig);
|
|
logger.info('Symbols handler registered successfully');
|
|
} |