added max retry and retry back off to run_loop

This commit is contained in:
2026-03-09 11:35:08 -04:00
parent ab5df442c6
commit f762f12bd2

View File

@@ -126,15 +126,24 @@ def run_loop(
inventory_path = Path(config.inventory_file) inventory_path = Path(config.inventory_file)
logger.info("Bot started — listening via WebSocket") logger.info("Bot started — listening via WebSocket")
while True: retries = 0
delay = config.reconnect_delay
while retries < config.max_retries:
try: try:
for message in signal.listen(): for message in signal.listen():
logger.info(f"Message from {message.source}: {message.message[:80]}") logger.info(f"Message from {message.source}: {message.message[:80]}")
registry.record_contact(message.source, "") registry.record_contact(message.source, "")
dispatch(message, signal, llm, registry, inventory_path) dispatch(message, signal, llm, registry, inventory_path, config)
retries = 0
delay = config.reconnect_delay
except Exception: except Exception:
logger.exception(f"WebSocket error, reconnecting in {RECONNECT_DELAY}s") retries += 1
time.sleep(RECONNECT_DELAY) logger.exception(f"WebSocket error ({retries}/{config.max_retries}), reconnecting in {delay}s")
time.sleep(delay)
delay = min(delay * 2, config.max_reconnect_delay)
logger.critical("Max retries exceeded, shutting down")
def main( def main(