fixed data-service apperently

This commit is contained in:
Boki 2025-06-19 21:55:30 -04:00
parent 4b552e454c
commit 80c29283da
11 changed files with 106 additions and 92 deletions

View file

@ -10,7 +10,7 @@ import { initializeServiceConfig } from '@stock-bot/config';
import { getLogger, setLoggerConfig, shutdownLoggers } from '@stock-bot/logger';
import { createAndConnectMongoDBClient, MongoDBClient } from '@stock-bot/mongodb-client';
import { createAndConnectPostgreSQLClient, PostgreSQLClient } from '@stock-bot/postgres-client';
import { getQueue, initializeQueueSystem, shutdownAllQueues } from '@stock-bot/queue';
import { QueueManager, handlerRegistry, type QueueManagerConfig } from '@stock-bot/queue';
import { Shutdown } from '@stock-bot/shutdown';
// Local imports
import { exchangeRoutes, healthRoutes, queueRoutes } from './routes';
@ -50,7 +50,7 @@ const PORT = serviceConfig.port;
let server: ReturnType<typeof Bun.serve> | null = null;
let postgresClient: PostgreSQLClient | null = null;
let mongoClient: MongoDBClient | null = null;
// Queue system will be initialized globally
let queueManager: QueueManager | null = null;
// Initialize shutdown manager
const shutdown = Shutdown.getInstance({ timeout: 15000 });
@ -100,14 +100,37 @@ async function initializeServices() {
// Initialize queue system
logger.info('Initializing queue system...');
await initializeQueueSystem({
const queueManagerConfig: QueueManagerConfig = {
redis: queueConfig.redis,
defaultJobOptions: queueConfig.defaultJobOptions,
workers: 5,
concurrency: 20,
});
defaultQueueOptions: {
defaultJobOptions: queueConfig.defaultJobOptions,
workers: 5,
concurrency: 20,
enableMetrics: true,
enableDLQ: true,
},
enableScheduledJobs: true,
};
queueManager = QueueManager.getInstance(queueManagerConfig);
await queueManager.initialize();
logger.info('Queue system initialized');
// Initialize providers (register handlers and scheduled jobs)
logger.info('Initializing data providers...');
const { initializeExchangeSyncProvider } = await import('./providers/exchange-sync.provider');
const { initializeIBProvider } = await import('./providers/ib.provider');
const { initializeProxyProvider } = await import('./providers/proxy.provider');
const { initializeQMProvider } = await import('./providers/qm.provider');
const { initializeWebShareProvider } = await import('./providers/webshare.provider');
initializeExchangeSyncProvider();
initializeIBProvider();
initializeProxyProvider();
initializeQMProvider();
initializeWebShareProvider();
logger.info('Data providers initialized');
logger.info('All services initialized successfully');
} catch (error) {
logger.error('Failed to initialize services', { error });
@ -144,7 +167,9 @@ shutdown.onShutdown(async () => {
shutdown.onShutdown(async () => {
logger.info('Shutting down queue system...');
try {
await shutdownAllQueues();
if (queueManager) {
await queueManager.shutdown();
}
logger.info('Queue system shut down');
} catch (error) {
logger.error('Error shutting down queue system', { error });
@ -183,5 +208,5 @@ startServer().catch(error => {
logger.info('Data service startup initiated');
// Export queue functions for providers
export { getQueue };
// Export queue manager for providers
export { queueManager };