Synchronize server startup

This prevents an edge case where the server begins processing inbound API / AP requests before any of the chart / management daemons are ready, potentially leading to incorrect chart statistics.
This commit is contained in:
Hazelnoot 2024-11-27 23:19:14 -05:00
parent f59af78d8a
commit ffbdfa9123
3 changed files with 12 additions and 11 deletions

View file

@ -19,17 +19,18 @@ export async function server() {
logger: new NestLogger(),
});
const serverService = app.get(ServerService);
await serverService.launch();
if (process.env.NODE_ENV !== 'test') {
app.get(ChartManagementService).start();
await app.get(ChartManagementService).start();
}
if (!envOption.noDaemons) {
app.get(QueueStatsService).start();
app.get(ServerStatsService).start();
await app.get(QueueStatsService).start();
await app.get(ServerStatsService).start();
}
// Start server last so the other services can register hooks first
const serverService = app.get(ServerService);
await serverService.launch();
return app;
}
@ -38,8 +39,8 @@ export async function jobQueue() {
logger: new NestLogger(),
});
jobQueue.get(QueueProcessorService).start();
jobQueue.get(ChartManagementService).start();
await jobQueue.get(QueueProcessorService).start();
await jobQueue.get(ChartManagementService).start();
return jobQueue;
}