Increased timeout to 4s and runs every 5s. Added a 5s wait in parralel with the pings to set it to a minimum of 5s but allows it to go longer.

This commit is contained in:
2025-09-02 20:26:23 +02:00
parent 446f36fc5b
commit 7ad601fc14

View File

@@ -14,13 +14,14 @@ async def check_service(client: httpx.AsyncClient, s: service) -> log:
r = await client.head(
url=s.url,
follow_redirects=True,
timeout=1,
timeout=4,
)
case 1:
r = await client.get(
url=s.url,
follow_redirects=True,
timeout=1,
timeout=4,
headers={"Host": "plex.ihatemen.uk"},
)
case _:
raise httpx.HTTPError("Unknown ping type")
@@ -29,7 +30,13 @@ async def check_service(client: httpx.AsyncClient, s: service) -> log:
s.set_online(r.status_code == 200)
s.set_status(r.status_code)
s.set_ping(int((after - before) * 1000))
except httpx.HTTPError as e:
except httpx.ConnectTimeout:
s.set_error("Connection Timeout")
s.set_online(False)
s.set_status(None)
s.set_ping(None)
except Exception as e:
print(type(e))
s.set_error(str(e))
s.set_online(False)
s.set_status(None)
@@ -44,6 +51,11 @@ def start_async_loop():
loop.run_forever()
async def sleepTask():
await asyncio.sleep(5)
return log()
async def update_services(loop: asyncio.AbstractEventLoop):
print("Starting service updates...")
with app.app_context():
@@ -58,7 +70,9 @@ async def update_services(loop: asyncio.AbstractEventLoop):
check_service(public_client if s.public else local_client, s)
for s in services
]
tasks.append(sleepTask())
logs = await asyncio.gather(*tasks)
logs = logs[:-1]
try:
session.add_all(logs)
session.commit()
@@ -67,4 +81,3 @@ async def update_services(loop: asyncio.AbstractEventLoop):
raise e
finally:
session.close()
await asyncio.sleep(2)