diff --git a/main.py b/main.py index a278e62..e653c7b 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,6 @@ import asyncio import re from datetime import datetime, timedelta, timezone import aiodocker -from aiodocker.connector import DockerConnector import aiohttp import random import string @@ -154,15 +153,10 @@ async def main(): Monitors Navidrome container logs for rapid star/unstar events. """ docker = None - session = None try: - # We need a custom session with no timeout for the long-polling log stream. - # We also need to use aiodocker's connector to handle Unix sockets correctly. - connector = DockerConnector() - timeout = aiohttp.ClientTimeout(total=None, sock_read=None) - session = connector.aiohttp_session(timeout=timeout) - docker = aiodocker.Docker(session=session) - + # Set a long client timeout to prevent log stream from timing out during + # periods of inactivity. One day in seconds. + docker = aiodocker.Docker(client_timeout=86400) container = await docker.containers.get(settings.NAVIDROME_CONTAINER) logging.info(f"Monitoring logs for container '{settings.NAVIDROME_CONTAINER}'...") @@ -201,10 +195,7 @@ async def main(): logging.exception("An unexpected error occurred") finally: if docker: - # aiodocker doesn't close sessions it doesn't own. await docker.close() - if session: - await session.close() if __name__ == "__main__":