MCPcopy Create free account
hub / github.com/sourcebot-dev/sourcebot / cleanup

Function cleanup

packages/backend/src/index.ts:88–117  ·  view source on GitHub ↗
(signal: string)

Source from the content-addressed store, hash-verified

86 let receivedSignal = false;
87
88 const cleanup = async (signal: string) => {
89 try {
90 if (receivedSignal) {
91 return;
92 }
93 receivedSignal = true;
94
95 logger.info(`Received ${signal}, cleaning up...`);
96
97 await repoIndexManager.dispose()
98 await connectionManager.dispose()
99 await repoPermissionSyncer.dispose()
100 await accountPermissionSyncer.dispose()
101 await auditLogPruner.dispose()
102 await configManager.dispose()
103
104 await prisma.$disconnect();
105 await redis.quit();
106 await api.dispose();
107 await shutdownPosthog();
108
109 logger.info('All workers shut down gracefully');
110 signals.forEach(sig => process.removeListener(sig, cleanup));
111 return 0;
112 } catch (error) {
113 Sentry.captureException(error);
114 logger.error('Error shutting down worker:', error);
115 return 1;
116 }
117 }
118
119 signals.forEach(signal => {
120 process.on(signal, (err) => {

Callers 1

listenToShutdownSignalsFunction · 0.70

Calls 2

shutdownPosthogFunction · 0.85
disposeMethod · 0.45

Tested by

no test coverage detected