feat: update codex live automation and plan flows
This commit is contained in:
@@ -9,6 +9,8 @@ import { PlanWorker } from './workers/plan-worker.js';
|
||||
const app = createApp();
|
||||
const planWorker = new PlanWorker(app.log);
|
||||
const chatService = new ChatService(app.log);
|
||||
const startedAt = Date.now();
|
||||
let shutdownPromise: Promise<void> | null = null;
|
||||
app.server.on('upgrade', chatService.attachUpgradeHandler());
|
||||
|
||||
async function start() {
|
||||
@@ -27,14 +29,32 @@ async function start() {
|
||||
}
|
||||
|
||||
async function shutdown(signal: string) {
|
||||
app.log.info(`Received ${signal}, closing server`);
|
||||
if (shutdownPromise) {
|
||||
return shutdownPromise;
|
||||
}
|
||||
|
||||
await planWorker.stop();
|
||||
chatService.close();
|
||||
await app.close();
|
||||
await shutdownNotificationProvider();
|
||||
await db.destroy();
|
||||
process.exit(0);
|
||||
shutdownPromise = (async () => {
|
||||
app.log.warn({
|
||||
signal,
|
||||
pid: process.pid,
|
||||
uptimeSeconds: Math.round((Date.now() - startedAt) / 1000),
|
||||
rssBytes: process.memoryUsage().rss,
|
||||
}, 'Received shutdown signal');
|
||||
|
||||
try {
|
||||
await planWorker.stop();
|
||||
chatService.close();
|
||||
await app.close();
|
||||
await shutdownNotificationProvider();
|
||||
await db.destroy();
|
||||
process.exitCode = 0;
|
||||
} catch (error) {
|
||||
app.log.error({ error, signal }, 'Failed to shut down cleanly');
|
||||
process.exitCode = 1;
|
||||
}
|
||||
})();
|
||||
|
||||
return shutdownPromise;
|
||||
}
|
||||
|
||||
process.on('SIGINT', () => {
|
||||
|
||||
Reference in New Issue
Block a user