result Response(500) if node unreachable

This commit is contained in:
kiriharu 2021-01-05 00:33:55 +03:00
parent cd2e0002f8
commit 9ca48f5973

View File

@ -1,4 +1,4 @@
from httpx import AsyncClient, Timeout from httpx import AsyncClient, Timeout, Response, ConnectError
from typing import List from typing import List
from core.coretypes import APINode from core.coretypes import APINode
@ -15,8 +15,12 @@ def check_int(value) -> bool:
async def send_api_requests(endpoint: str, data: dict, nodes: List[APINode]): async def send_api_requests(endpoint: str, data: dict, nodes: List[APINode]):
for node in nodes: for node in nodes:
data.update(dict(token=node.token)) data.update(dict(token=node.token))
async with AsyncClient(timeout=Timeout(timeout=100.0)) as client: try:
result = await client.get( async with AsyncClient(timeout=Timeout(timeout=100.0)) as client:
f"{node.address}/{endpoint}", params=data result = await client.get(
) f"{node.address}/{endpoint}", params=data
)
except ConnectError:
# We yield 500 response when backend is offline
result = Response(500)
yield result yield result