|
1 | | -from aiohttp import ClientSession, ClientTimeout |
2 | | -from common_library.json_serialization import json_dumps |
| 1 | +import httpx |
3 | 2 | from fastapi import FastAPI |
4 | | -from servicelib.utils import ( |
5 | | - get_http_client_request_aiohttp_connect_timeout, |
6 | | - get_http_client_request_aiohttp_sock_connect_timeout, |
7 | | - get_http_client_request_total_timeout, |
8 | | -) |
9 | 3 |
|
10 | 4 |
|
11 | 5 | def setup_client_session(app: FastAPI) -> None: |
12 | 6 | async def on_startup() -> None: |
13 | | - # SEE https://github.com/ITISFoundation/osparc-simcore/issues/4628 |
14 | | - |
15 | | - # ANE: it is important to have fast connection handshakes |
16 | | - # also requests should be as fast as possible |
17 | | - # some services are not that fast to reply |
18 | | - timeout_settings = ClientTimeout( |
19 | | - total=get_http_client_request_total_timeout(), |
20 | | - connect=get_http_client_request_aiohttp_connect_timeout(), |
21 | | - sock_connect=get_http_client_request_aiohttp_sock_connect_timeout(), |
22 | | - ) |
23 | | - session = ClientSession( |
24 | | - timeout=timeout_settings, |
25 | | - json_serialize=json_dumps, |
26 | | - ) |
| 7 | + session = httpx.AsyncClient(transport=httpx.AsyncHTTPTransport(http2=True)) |
27 | 8 | app.state.aiohttp_client_session = session |
28 | 9 |
|
29 | 10 | async def on_shutdown() -> None: |
30 | 11 | session = app.state.aiohttp_client_session |
31 | | - assert isinstance(session, ClientSession) # nosec |
32 | | - await session.close() |
| 12 | + assert isinstance(session, httpx.AsyncClient) # nosec |
| 13 | + await session.aclose() |
33 | 14 |
|
34 | 15 | app.add_event_handler("startup", on_startup) |
35 | 16 | app.add_event_handler("shutdown", on_shutdown) |
36 | 17 |
|
37 | 18 |
|
38 | | -def get_client_session(app: FastAPI) -> ClientSession: |
| 19 | +def get_client_session(app: FastAPI) -> httpx.AsyncClient: |
39 | 20 | session = app.state.aiohttp_client_session |
40 | | - assert isinstance(session, ClientSession) # nosec |
| 21 | + assert isinstance(session, httpx.AsyncClient) # nosec |
41 | 22 | return session |
0 commit comments