Как я могу реализовать политику повторных попыток с помощью httpx в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу реализовать политику повторных попыток с помощью httpx в Python?

Сообщение Anonymous »

мне нужно общаться с другими услугами в моем приложении Python и Fastapi, поэтому я использую библиотеку HTTPX, чтобы иметь возможность асинхронно общаться. Итак, у меня есть следующий код для запросов на почту: < /p>

Код: Выделить всё

from typing import Any, Dict, Optional, Tuple

from fastapi import File
from httpx._client import AsyncClient

async def post(
*,
url: str,
files: Optional[Dict[str, File]] = None,
json: Optional[Dict[str, Any]] = None,
data: Optional[Dict[str, str]] = None,
params: Optional[Dict[str, str]] = None,
timeout: int = 10000
) -> Tuple[bool, Any]:
try:
async with AsyncClient() as client:
response = await client.post(url, files=files, json=json, data=data, timeout=timeout)
response = response.json() if response.status_code == 200 else None
if not response:
return False, None
return True, response
except Exception as e:
print(e)
return False, None
Я хотел бы реализовать политику повтора, чтобы в случае сбоя запроса он повторялся, например, до 3 раз. Возможно ли это и имеет ли смысл использовать httpx и async? Я просматривал несколько руководств в Интернете, но они кажутся устаревшими, поскольку содержащаяся в них информация не работает.
Обновление:
Я попробовал следующий подход с HTTPTransport, но он не помог. у меня не работает:

Код: Выделить всё

from httpx import HTTPTransport # here

try:
async with AsyncClient(transport=transport) as client: # here
response = await client.post(url, files=files, json=json, data=data, timeout=timeout)
response = response.json() if response.status_code == 200 else None
if not response:
return False, None
return True, response
except Exception as e:
print(e)
return False, None

transport = HTTPTransport(retries=3)
Я получаю:
'httptransport' объект не имеет атрибута ' aenter '

Подробнее здесь: https://stackoverflow.com/questions/776 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»