mirror of
https://github.com/StefBuwalda/dashboard_test.git
synced 2025-10-30 11:19:58 +00:00
Added option to ping with a different method (HEAD and GET)
This commit is contained in:
@@ -7,11 +7,22 @@ import time
|
||||
async def check_service(client: httpx.AsyncClient, s: service):
|
||||
try:
|
||||
before = time.perf_counter()
|
||||
r = await client.get(
|
||||
url=s.url,
|
||||
follow_redirects=True,
|
||||
timeout=1,
|
||||
)
|
||||
match s.ping_type:
|
||||
case 0:
|
||||
r = await client.head(
|
||||
url=s.url,
|
||||
follow_redirects=True,
|
||||
timeout=1,
|
||||
)
|
||||
case 1:
|
||||
r = await client.get(
|
||||
url=s.url,
|
||||
follow_redirects=True,
|
||||
timeout=1,
|
||||
)
|
||||
case _:
|
||||
raise httpx.HTTPError("Unknown ping type")
|
||||
|
||||
after = time.perf_counter()
|
||||
s.set_error(None)
|
||||
s.set_online(r.status_code == 200)
|
||||
@@ -33,9 +44,10 @@ def start_async_loop():
|
||||
|
||||
async def update_services(loop: asyncio.AbstractEventLoop):
|
||||
print("Starting service updates...")
|
||||
async with httpx.AsyncClient() as public_client, httpx.AsyncClient(
|
||||
verify=False
|
||||
) as local_client:
|
||||
async with (
|
||||
httpx.AsyncClient() as public_client,
|
||||
httpx.AsyncClient(verify=False) as local_client,
|
||||
):
|
||||
while True:
|
||||
tasks = [
|
||||
check_service(public_client if s.public else local_client, s)
|
||||
|
||||
Reference in New Issue
Block a user