update ws_client more verbosity, better readable time delta
This commit is contained in:
parent
000b0c2198
commit
a0965606a5
@ -18,7 +18,6 @@ import orjson
|
|||||||
import pandas
|
import pandas
|
||||||
import rapidjson
|
import rapidjson
|
||||||
import websockets
|
import websockets
|
||||||
from dateutil.relativedelta import relativedelta
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("WebSocketClient")
|
logger = logging.getLogger("WebSocketClient")
|
||||||
@ -28,7 +27,7 @@ logger = logging.getLogger("WebSocketClient")
|
|||||||
|
|
||||||
def setup_logging(filename: str):
|
def setup_logging(filename: str):
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=logging.INFO,
|
level=logging.DEBUG,
|
||||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||||
handlers=[
|
handlers=[
|
||||||
logging.FileHandler(filename),
|
logging.FileHandler(filename),
|
||||||
@ -75,16 +74,15 @@ def load_config(configfile):
|
|||||||
|
|
||||||
def readable_timedelta(delta):
|
def readable_timedelta(delta):
|
||||||
"""
|
"""
|
||||||
Convert a dateutil.relativedelta to a readable format
|
Convert a millisecond delta to a readable format
|
||||||
|
|
||||||
:param delta: A dateutil.relativedelta
|
:param delta: A delta between two timestamps in milliseconds
|
||||||
:returns: The readable time difference string
|
:returns: The readable time difference string
|
||||||
"""
|
"""
|
||||||
attrs = ['years', 'months', 'days', 'hours', 'minutes', 'seconds', 'microseconds']
|
seconds, milliseconds = divmod(delta, 1000)
|
||||||
return ", ".join([
|
minutes, seconds = divmod(seconds, 60)
|
||||||
'%d %s' % (getattr(delta, attr), attr if getattr(delta, attr) > 0 else attr[:-1])
|
|
||||||
for attr in attrs if getattr(delta, attr)
|
return f"{int(minutes)}:{int(seconds)}.{int(milliseconds)}"
|
||||||
])
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -170,8 +168,8 @@ class ClientProtocol:
|
|||||||
|
|
||||||
def _calculate_time_difference(self):
|
def _calculate_time_difference(self):
|
||||||
old_last_received_at = self._LAST_RECEIVED_AT
|
old_last_received_at = self._LAST_RECEIVED_AT
|
||||||
self._LAST_RECEIVED_AT = time.time() * 1e6
|
self._LAST_RECEIVED_AT = time.time() * 1e3
|
||||||
time_delta = relativedelta(microseconds=(self._LAST_RECEIVED_AT - old_last_received_at))
|
time_delta = self._LAST_RECEIVED_AT - old_last_received_at
|
||||||
|
|
||||||
return readable_timedelta(time_delta)
|
return readable_timedelta(time_delta)
|
||||||
|
|
||||||
@ -272,6 +270,7 @@ async def create_client(
|
|||||||
websockets.exceptions.ConnectionClosedError,
|
websockets.exceptions.ConnectionClosedError,
|
||||||
websockets.exceptions.ConnectionClosedOK
|
websockets.exceptions.ConnectionClosedOK
|
||||||
):
|
):
|
||||||
|
logger.info("Connection was closed")
|
||||||
# Just keep trying to connect again indefinitely
|
# Just keep trying to connect again indefinitely
|
||||||
await asyncio.sleep(sleep_time)
|
await asyncio.sleep(sleep_time)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user