restart server with condition and timeout

This commit is contained in:
Eva Ho 2023-07-21 12:47:54 -04:00
parent f5f0da06d9
commit 0768b1b907

View file

@ -103,29 +103,33 @@ if (require('electron-squirrel-startup')) {
function server() {
const binary = app.isPackaged
? path.join(process.resourcesPath, 'ollama')
: path.resolve(process.cwd(), '..', 'ollama')
: path.resolve(process.cwd(), '..', 'ollama');
const proc = spawn(binary, ['serve'])
const proc = spawn(binary, ['serve']);
proc.stdout.on('data', data => {
logger.info(data.toString().trim())
})
logger.info(data.toString().trim());
});
proc.stderr.on('data', data => {
logger.error(data.toString().trim())
})
logger.error(data.toString().trim());
});
function restart() {
logger.info('Restarting the server...')
server()
proc.on('exit', (code, signal) => {
if (code === 0 || code === null) {
logger.info('Server has stopped.');
setTimeout(server, 5000);
} else {
logger.error(`Server exited with code: ${code}, signal: ${signal}`);
setTimeout(server, 3000);
}
proc.on('exit', restart)
});
app.on('before-quit', () => {
proc.off('exit', restart)
proc.kill()
})
proc.off('exit', server);
proc.kill();
});
}
if (process.platform === 'darwin') {