mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -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,
|
"default": false,
|
||||||
"description": "%notebook.dontPromptPythonUpdate.description%"
|
"description": "%notebook.dontPromptPythonUpdate.description%"
|
||||||
},
|
},
|
||||||
|
"notebook.jupyterServerShutdownTimeout": {
|
||||||
|
"type": "number",
|
||||||
|
"default": 5,
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "%notebook.jupyterServerShutdownTimeout.description%"
|
||||||
|
},
|
||||||
"notebook.overrideEditorTheming": {
|
"notebook.overrideEditorTheming": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"notebook.pythonPath.description": "Local path to python installation used by Notebooks.",
|
"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.useExistingPython.description": "Local path to a preexisting python installation used by Notebooks.",
|
||||||
"notebook.dontPromptPythonUpdate.description": "Do not show prompt to update Python.",
|
"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.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.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.",
|
"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 pythonPathConfigKey = 'pythonPath';
|
||||||
export const existingPythonConfigKey = 'useExistingPython';
|
export const existingPythonConfigKey = 'useExistingPython';
|
||||||
export const dontPromptPythonUpdate = 'dontPromptPythonUpdate';
|
export const dontPromptPythonUpdate = 'dontPromptPythonUpdate';
|
||||||
|
export const jupyterServerShutdownTimeoutConfigKey = 'jupyterServerShutdownTimeout';
|
||||||
export const notebookConfigKey = 'notebook';
|
export const notebookConfigKey = 'notebook';
|
||||||
export const trustedBooksConfigKey = 'trustedBooks';
|
export const trustedBooksConfigKey = 'trustedBooks';
|
||||||
export const pinnedBooksConfigKey = 'pinnedNotebooks';
|
export const pinnedBooksConfigKey = 'pinnedNotebooks';
|
||||||
|
|||||||
@@ -64,13 +64,17 @@ export class JupyterNotebookProvider implements nb.NotebookProvider {
|
|||||||
manager.sessionManager.shutdown(session.id);
|
manager.sessionManager.shutdown(session.id);
|
||||||
}
|
}
|
||||||
if (sessionManager.listRunning().length === 0) {
|
if (sessionManager.listRunning().length === 0) {
|
||||||
const TenMinutesInMs = 10 * 60 * 1000;
|
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(() => {
|
setTimeout(() => {
|
||||||
if (sessionManager.listRunning().length === 0) {
|
if (sessionManager.listRunning().length === 0) {
|
||||||
this.managerTracker.delete(baseFolder);
|
this.managerTracker.delete(baseFolder);
|
||||||
manager.dispose();
|
manager.dispose();
|
||||||
}
|
}
|
||||||
}, TenMinutesInMs);
|
}, timeoutInMs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user