To make requests retry on specific HTTP status codes, use status_forcelist. For example, status_forcelist=[503] will retry on status code 503 (service unavailable).
backoff_factor (float) – A backoff factor to apply between attempts after the second try (most errors are resolved immediately by a second try without a delay).
It will wait until the response arrives before the rest of your program will execute. If you want to be able to do other things, you will probably want to look at the asyncio or multiprocessing modules. Chad S. Chad S.
post() Python's requests module comes with a method for making a “post” request to a web server; it returns a response object.
In urllib3 POST
is not allowed as a retried method by default (since it can cause multiple inserts). You can force it though:
Retry(total=3, allowed_methods=frozenset(['GET', 'POST']))
See https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#urllib3.util.retry.Retry
You can use tenacity.
doc: https://tenacity.readthedocs.io/en/latest/
And you can log before or after
pip install tenacity
import logging
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
logger = logging.getLogger(__name__)
@retry(stop=stop_after_attempt(3), before=before_log(logger, logging.DEBUG))
def post_something():
# post
raise MyException("Fail")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With