Refactor logging and improve service initialization
- Updated logging in `search-server.ts` to use `silentDebug` for non-critical messages, reducing console noise. - Added a health check endpoint in `worker-service.ts` to improve service monitoring. - Modified the worker service startup process to start the HTTP server immediately and perform slow initialization in the background. - Refactored database initialization in `Database.ts` to use the correct `Database` class. - Implemented a port availability check in `context-hook.ts` to ensure the worker service is ready before making requests.
This commit is contained in:
@@ -96,6 +96,11 @@ export class WorkerService {
|
||||
* Setup HTTP routes (delegate to route classes)
|
||||
*/
|
||||
private setupRoutes(): void {
|
||||
// Health check endpoint
|
||||
this.app.get('/api/health', (_req, res) => {
|
||||
res.status(200).json({ status: 'ok' });
|
||||
});
|
||||
|
||||
this.viewerRoutes.setupRoutes(this.app);
|
||||
this.sessionRoutes.setupRoutes(this.app);
|
||||
this.dataRoutes.setupRoutes(this.app);
|
||||
@@ -139,6 +144,25 @@ export class WorkerService {
|
||||
* Start the worker service
|
||||
*/
|
||||
async start(): Promise<void> {
|
||||
// Start HTTP server FIRST - make port available immediately
|
||||
const port = getWorkerPort();
|
||||
this.server = await new Promise<http.Server>((resolve, reject) => {
|
||||
const srv = this.app.listen(port, () => resolve(srv));
|
||||
srv.on('error', reject);
|
||||
});
|
||||
|
||||
logger.info('SYSTEM', 'Worker started', { port, pid: process.pid });
|
||||
|
||||
// Do slow initialization in background (non-blocking)
|
||||
this.initializeBackground().catch((error) => {
|
||||
logger.error('SYSTEM', 'Background initialization failed', {}, error as Error);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Background initialization - runs after HTTP server is listening
|
||||
*/
|
||||
private async initializeBackground(): Promise<void> {
|
||||
// Cleanup orphaned processes from previous sessions
|
||||
await this.cleanupOrphanedProcesses();
|
||||
|
||||
@@ -155,15 +179,6 @@ export class WorkerService {
|
||||
|
||||
await this.mcpClient.connect(transport);
|
||||
logger.success('WORKER', 'Connected to MCP search server');
|
||||
|
||||
// Start HTTP server
|
||||
const port = getWorkerPort();
|
||||
this.server = await new Promise<http.Server>((resolve, reject) => {
|
||||
const srv = this.app.listen(port, () => resolve(srv));
|
||||
srv.on('error', reject);
|
||||
});
|
||||
|
||||
logger.info('SYSTEM', 'Worker started', { port, pid: process.pid });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user