mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-14 18:46:34 -05:00
Add jupyter server shutdown timeout setting (#15913)
* add jupyter server shutdown timeout setting * no timeout if setting is 0 * set minimum value to 0
This commit is contained in:
@@ -43,6 +43,12 @@
|
||||
"default": false,
|
||||
"description": "%notebook.dontPromptPythonUpdate.description%"
|
||||
},
|
||||
"notebook.jupyterServerShutdownTimeout": {
|
||||
"type": "number",
|
||||
"default": 5,
|
||||
"minimum": 0,
|
||||
"description": "%notebook.jupyterServerShutdownTimeout.description%"
|
||||
},
|
||||
"notebook.overrideEditorTheming": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"notebook.pythonPath.description": "Local path to python installation used by Notebooks.",
|
||||
"notebook.useExistingPython.description": "Local path to a preexisting python installation used by Notebooks.",
|
||||
"notebook.dontPromptPythonUpdate.description": "Do not show prompt to update Python.",
|
||||
"notebook.jupyterServerShutdownTimeout.description": "The amount of time (in minutes) to wait before shutting down a server after all notebooks are closed. (Enter 0 to not shutdown)",
|
||||
"notebook.overrideEditorTheming.description": "Override editor default settings in the Notebook editor. Settings include background color, current line color and border",
|
||||
"notebook.maxTableRows.description": "Maximum number of rows returned per table in the Notebook editor",
|
||||
"notebook.trustedBooks.description": "Notebooks contained in these books will automatically be trusted.",
|
||||
|
||||
@@ -17,6 +17,7 @@ export const pythonVersion = '3.8.10';
|
||||
export const pythonPathConfigKey = 'pythonPath';
|
||||
export const existingPythonConfigKey = 'useExistingPython';
|
||||
export const dontPromptPythonUpdate = 'dontPromptPythonUpdate';
|
||||
export const jupyterServerShutdownTimeoutConfigKey = 'jupyterServerShutdownTimeout';
|
||||
export const notebookConfigKey = 'notebook';
|
||||
export const trustedBooksConfigKey = 'trustedBooks';
|
||||
export const pinnedBooksConfigKey = 'pinnedNotebooks';
|
||||
|
||||
@@ -64,13 +64,17 @@ export class JupyterNotebookProvider implements nb.NotebookProvider {
|
||||
manager.sessionManager.shutdown(session.id);
|
||||
}
|
||||
if (sessionManager.listRunning().length === 0) {
|
||||
const TenMinutesInMs = 10 * 60 * 1000;
|
||||
setTimeout(() => {
|
||||
if (sessionManager.listRunning().length === 0) {
|
||||
this.managerTracker.delete(baseFolder);
|
||||
manager.dispose();
|
||||
}
|
||||
}, TenMinutesInMs);
|
||||
let notebookConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration(constants.notebookConfigKey);
|
||||
let timeoutInMinutes: number = notebookConfig.get(constants.jupyterServerShutdownTimeoutConfigKey);
|
||||
if (timeoutInMinutes > 0) {
|
||||
const timeoutInMs = timeoutInMinutes * 60 * 1000;
|
||||
setTimeout(() => {
|
||||
if (sessionManager.listRunning().length === 0) {
|
||||
this.managerTracker.delete(baseFolder);
|
||||
manager.dispose();
|
||||
}
|
||||
}, timeoutInMs);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user