From 55f1357aef63ce1614c54fb0b30a54e3ba3c49cc Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Mon, 26 Oct 2026 13:10:58 -0400 Subject: [PATCH] Strengthened stability by introducing TimeoutError handling --- core/apirequest/execute.py | 74 ++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/core/apirequest/execute.py b/core/apirequest/execute.py index 736dee1..d96261d 100644 --- a/core/apirequest/execute.py +++ b/core/apirequest/execute.py @@ -31,33 +31,61 @@ def executeRequest(action, outputs, resolved): f"{threading.current_thread().name} thread" ) - try: + for attempt in range(2): request, outputs = buildRequest(action, outputs, resolved) - - response = session.request( - method=request["method"], - url=request["path"], - json=request.get("object"), - headers=request.get("headers"), - data=request.get("data"), - files=request.get("files") + try: + response = session.request( + method=request["method"], + url=request["path"], + json=request.get("object"), + headers=request.get("headers"), + data=request.get("data"), + files=request.get("files"), + timeout=(10, 30) ) + return response, outputs - except requests.ConnectionError as error: - print(f"Request failed due to {error} during {action.name}") + except (requests.ConnectTimeout, requests.ConnectionError) as error: + print(f"{type(error).__name__} during {action.name}: {error}") + session = getSession(reset=True) - session = getSession(reset=True) - - print(f"Retrying {action.name}") + if attempt == 0: + print(f"Retrying {action.name}") - response = session.request( - method=request["method"], - url=request["path"], - json=request.get("object"), - headers=request.get("headers"), - data=request.get("data") - ) - - return response, outputs +# try: +# request, outputs = buildRequest(action, outputs, resolved) +# +# response = session.request( +# method=request["method"], +# url=request["path"], +# json=request.get("object"), +# headers=request.get("headers"), +# data=request.get("data"), +# files=request.get("files"), +# timeout=(10, 30) +# ) +# +# except requests.ConnectionError as error: +# print(f"Request failed due to {error} during {action.name}") +# +# session = getSession(reset=True) +# +# print(f"Retrying {action.name}") +# +# response = session.request( +# method=request["method"], +# url=request["path"], +# json=request.get("object"), +# headers=request.get("headers"), +# data=request.get("data"), +# files=request.get("files"), +# timeout=(10, 30) +# ) +# +# return response, outputs +# +# except requests.Timeout as error: +# print(f"Request timed out during {action.name}: {error}") +# session = getSession(reset=True) return response, outputs