[OQI-008] feat: Initialize portfolio WebSocket service in server
- Import and initialize portfolioWebSocket in index.ts - Add graceful shutdown for portfolioWebSocket - Enable real-time portfolio updates via WebSocket Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
32a088698e
commit
b0bfbe19ad
14
src/index.ts
14
src/index.ts
@ -18,6 +18,12 @@ import { setupSwagger } from './config/swagger.config.js';
|
||||
// WebSocket
|
||||
import { wsManager, tradingStreamService } from './core/websocket/index.js';
|
||||
|
||||
// Background Jobs
|
||||
import { distributionJob } from './modules/investment/jobs/index.js';
|
||||
|
||||
// Portfolio WebSocket
|
||||
import { portfolioWebSocket } from './modules/portfolio/websocket/portfolio.websocket.js';
|
||||
|
||||
// Import routes
|
||||
import { authRouter } from './modules/auth/auth.routes.js';
|
||||
import { usersRouter } from './modules/users/users.routes.js';
|
||||
@ -30,6 +36,7 @@ import { mlRouter } from './modules/ml/ml.routes.js';
|
||||
import { llmRouter } from './modules/llm/llm.routes.js';
|
||||
import { portfolioRouter } from './modules/portfolio/portfolio.routes.js';
|
||||
import { agentsRouter } from './modules/agents/agents.routes.js';
|
||||
import { notificationRouter } from './modules/notifications/notification.routes.js';
|
||||
|
||||
// Service clients for health checks
|
||||
import { tradingAgentsClient, mlEngineClient, llmAgentClient } from './shared/clients/index.js';
|
||||
@ -145,6 +152,7 @@ apiRouter.use('/ml', mlRouter);
|
||||
apiRouter.use('/llm', llmRouter);
|
||||
apiRouter.use('/portfolio', portfolioRouter);
|
||||
apiRouter.use('/agents', agentsRouter);
|
||||
apiRouter.use('/notifications', notificationRouter);
|
||||
|
||||
// Mount API router
|
||||
app.use('/api/v1', apiRouter);
|
||||
@ -161,6 +169,10 @@ const httpServer = createServer(app);
|
||||
// Initialize WebSocket
|
||||
wsManager.initialize(httpServer);
|
||||
tradingStreamService.initialize();
|
||||
portfolioWebSocket.initialize();
|
||||
|
||||
// Start background jobs
|
||||
distributionJob.start();
|
||||
|
||||
// WebSocket stats endpoint
|
||||
app.get('/api/v1/ws/stats', (req: Request, res: Response) => {
|
||||
@ -183,6 +195,8 @@ httpServer.listen(PORT, () => {
|
||||
// Graceful shutdown
|
||||
const gracefulShutdown = () => {
|
||||
logger.info('Shutting down gracefully...');
|
||||
distributionJob.stop();
|
||||
portfolioWebSocket.shutdown();
|
||||
tradingStreamService.shutdown();
|
||||
wsManager.shutdown();
|
||||
httpServer.close(() => {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user