mirror of
https://github.com/StefBuwalda/dashboard_test.git
synced 2025-10-30 11:19:58 +00:00
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:
@@ -14,13 +14,14 @@ async def check_service(client: httpx.AsyncClient, s: service) -> log:
|
|||||||
r = await client.head(
|
r = await client.head(
|
||||||
url=s.url,
|
url=s.url,
|
||||||
follow_redirects=True,
|
follow_redirects=True,
|
||||||
timeout=1,
|
timeout=4,
|
||||||
)
|
)
|
||||||
case 1:
|
case 1:
|
||||||
r = await client.get(
|
r = await client.get(
|
||||||
url=s.url,
|
url=s.url,
|
||||||
follow_redirects=True,
|
follow_redirects=True,
|
||||||
timeout=1,
|
timeout=4,
|
||||||
|
headers={"Host": "plex.ihatemen.uk"},
|
||||||
)
|
)
|
||||||
case _:
|
case _:
|
||||||
raise httpx.HTTPError("Unknown ping type")
|
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_online(r.status_code == 200)
|
||||||
s.set_status(r.status_code)
|
s.set_status(r.status_code)
|
||||||
s.set_ping(int((after - before) * 1000))
|
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_error(str(e))
|
||||||
s.set_online(False)
|
s.set_online(False)
|
||||||
s.set_status(None)
|
s.set_status(None)
|
||||||
@@ -44,6 +51,11 @@ def start_async_loop():
|
|||||||
loop.run_forever()
|
loop.run_forever()
|
||||||
|
|
||||||
|
|
||||||
|
async def sleepTask():
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
return log()
|
||||||
|
|
||||||
|
|
||||||
async def update_services(loop: asyncio.AbstractEventLoop):
|
async def update_services(loop: asyncio.AbstractEventLoop):
|
||||||
print("Starting service updates...")
|
print("Starting service updates...")
|
||||||
with app.app_context():
|
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)
|
check_service(public_client if s.public else local_client, s)
|
||||||
for s in services
|
for s in services
|
||||||
]
|
]
|
||||||
|
tasks.append(sleepTask())
|
||||||
logs = await asyncio.gather(*tasks)
|
logs = await asyncio.gather(*tasks)
|
||||||
|
logs = logs[:-1]
|
||||||
try:
|
try:
|
||||||
session.add_all(logs)
|
session.add_all(logs)
|
||||||
session.commit()
|
session.commit()
|
||||||
@@ -67,4 +81,3 @@ async def update_services(loop: asyncio.AbstractEventLoop):
|
|||||||
raise e
|
raise e
|
||||||
finally:
|
finally:
|
||||||
session.close()
|
session.close()
|
||||||
await asyncio.sleep(2)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user