diff --git a/jupyterlab_kernel_usage/__init__.py b/jupyterlab_kernel_usage/__init__.py index fd902d0..f911c77 100644 --- a/jupyterlab_kernel_usage/__init__.py +++ b/jupyterlab_kernel_usage/__init__.py @@ -1,4 +1,3 @@ - import json from pathlib import Path diff --git a/jupyterlab_kernel_usage/handlers.py b/jupyterlab_kernel_usage/handlers.py index 71d1451..61a9a46 100644 --- a/jupyterlab_kernel_usage/handlers.py +++ b/jupyterlab_kernel_usage/handlers.py @@ -1,13 +1,10 @@ -import asyncio import ipykernel import json import tornado import zmq -from functools import partial - from jupyter_server.base.handlers import APIHandler -from jupyter_server.utils import url_path_join, ensure_async +from jupyter_server.utils import url_path_join from jupyter_client.jsonutil import date_default from packaging import version @@ -15,6 +12,8 @@ USAGE_IS_SUPPORTED = version.parse("6.9.0") <= version.parse(ipykernel.__version__) +MAX_RETRIES = 3 + class RouteHandler(APIHandler): @@ -38,9 +37,8 @@ async def get(self, matched_part=None, *args, **kwargs): poller = zmq.Poller() control_socket = control_channel.socket poller.register(control_socket, zmq.POLLIN) - while True: - timeout = 100 - timeout_ms = int(1000 * timeout) + for i in range(1, MAX_RETRIES + 1): + timeout_ms = 1000 * i events = dict(poller.poll(timeout_ms)) if not events: self.write(json.dumps({}))