Повторите попытку возникновения ошибки 5XX при вызове REST - метод POST - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь выполнить один вызов API REST для метода POST.

Будет около 500 вызовов плюс к одной и той же конечной точке с разных хостов.

Это приводит к ошибке 503, Поэтому я попытался реализовать механизм повторных попыток, используя функцию Retry модуля запросов.

Несмотря на то, что после реализации функции повторных попыток все еще появляется та же ошибка.

Фрагмент кода, как показано ниже:

import requests

requests.packages.urllib3.disable_warnings()
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
import json

s = requests.Session()
retries = Retry(total=3, backoff_factor=0.3, status_forcelist=[502, 503, 504],
                method_whitelist=frozenset(['GET', 'POST']))
s.mount('https//', HTTPAdapter(max_retries=retries))
s.mount('http//', HTTPAdapter(max_retries=retries))
response = s.post(url, json=json_payload, headers=headers)

Все еще получаю ошибку с 503.

Уже прошел предыдущие ответы для того же шаблона вопроса, но я не Подробнее об этом нет.

Примечание. Здесь скрипт выполняется одновременно с 525 хостами, поэтому около 500 хостов плюс попытаются инициировать вызов по URL (внутреннему URL), поэтому здесь я 350 хостов. получить правильный ответ 200, другой в конечном итоге ошибка 503.

Поправь меня, если я что-то здесь упускаю, Любая помощь приветствуется.

1 Ответ

0 голосов
/ 27 апреля 2020

Это были в основном опечатки в коде, которые вызывали механизм сбоя повторной попытки, который не работал должным образом.

s.mount('https://', HTTPAdapter(max_retries=retries))
s.mount('http://', HTTPAdapter(max_retries=retries))

Пропущено добавление ":" в "http" / "https". после добавления ":" все заработало

...