diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2024-11-27 23:19:14 -0500 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2024-12-08 08:01:33 -0500 |
| commit | ffbdfa912388c705ac288b68f45aa31fc9e75c40 (patch) | |
| tree | 221a825b0a28959638af7f5d7b7565f75046f62b /packages/backend/src/boot | |
| parent | merge: Fix Content-Length resetting for partial content length requests (!796) (diff) | |
| download | sharkey-ffbdfa912388c705ac288b68f45aa31fc9e75c40.tar.gz sharkey-ffbdfa912388c705ac288b68f45aa31fc9e75c40.tar.bz2 sharkey-ffbdfa912388c705ac288b68f45aa31fc9e75c40.zip | |
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.
Diffstat (limited to 'packages/backend/src/boot')
| -rw-r--r-- | packages/backend/src/boot/common.ts | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/packages/backend/src/boot/common.ts b/packages/backend/src/boot/common.ts index ad59a55688..9ff1efb3c2 100644 --- a/packages/backend/src/boot/common.ts +++ b/packages/backend/src/boot/common.ts @@ -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; } |