fix(notify): more resilient OpenClaw sends (retries/backoff + longer timeout)
This commit is contained in:
@@ -259,7 +259,7 @@ def notify_openclaw(ctx: NotifyContext) -> None:
|
|||||||
client.tools_invoke(
|
client.tools_invoke(
|
||||||
"sessions_send",
|
"sessions_send",
|
||||||
{"sessionKey": sk, "message": message},
|
{"sessionKey": sk, "message": message},
|
||||||
timeout_s=15.0,
|
timeout_s=30.0,
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
# keep the log, but avoid giant stack spam unless debugging
|
# keep the log, but avoid giant stack spam unless debugging
|
||||||
|
|||||||
@@ -50,7 +50,8 @@ class OpenClawClient:
|
|||||||
payload["sessionKey"] = session_key
|
payload["sessionKey"] = session_key
|
||||||
|
|
||||||
last_err: Exception | None = None
|
last_err: Exception | None = None
|
||||||
for attempt in range(2):
|
# Retry a few times; the gateway can be busy and respond slowly.
|
||||||
|
for attempt in range(4):
|
||||||
try:
|
try:
|
||||||
r = requests.post(
|
r = requests.post(
|
||||||
f"{self.base_url}/tools/invoke",
|
f"{self.base_url}/tools/invoke",
|
||||||
@@ -74,14 +75,14 @@ class OpenClawClient:
|
|||||||
"openclaw.tools_invoke: timeout",
|
"openclaw.tools_invoke: timeout",
|
||||||
extra={"tool": tool, "attempt": attempt + 1, "timeout_s": timeout_s},
|
extra={"tool": tool, "attempt": attempt + 1, "timeout_s": timeout_s},
|
||||||
)
|
)
|
||||||
time.sleep(0.2 * (attempt + 1))
|
time.sleep(0.5 * (2**attempt))
|
||||||
except RequestException as e:
|
except RequestException as e:
|
||||||
last_err = e
|
last_err = e
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"openclaw.tools_invoke: request error",
|
"openclaw.tools_invoke: request error",
|
||||||
extra={"tool": tool, "attempt": attempt + 1, "error": str(e)},
|
extra={"tool": tool, "attempt": attempt + 1, "error": str(e)},
|
||||||
)
|
)
|
||||||
time.sleep(0.2 * (attempt + 1))
|
time.sleep(0.5 * (2**attempt))
|
||||||
|
|
||||||
assert last_err is not None
|
assert last_err is not None
|
||||||
raise last_err
|
raise last_err
|
||||||
|
|||||||
Reference in New Issue
Block a user