আমি একটি ডিফল্ট সময়সীমা সহজেই কোডের একগুচ্ছের সাথে যুক্ত করতে চেয়েছিলাম (ধরে নিলাম যে সময়সীমাটি আপনার সমস্যার সমাধান করে)
অনুরোধগুলির জন্য সংগ্রহস্থলের কাছে জমা দেওয়া টিকিট থেকে আমি এই সমাধানটি তুলেছি।
ক্রেডিট: https://github.com/kennethreitz/requests/issues/2011#issuecomment-477784399
সমাধানটি এখানে লাইনগুলির শেষ দু'টি, তবে আমি আরও ভাল প্রসঙ্গে আরও কোড দেখাই show আমি আবার চেষ্টা করার জন্য একটি সেশন ব্যবহার করতে চাই।
import requests
import functools
from requests.adapters import HTTPAdapter,Retry
def requests_retry_session(
retries=10,
backoff_factor=2,
status_forcelist=(500, 502, 503, 504),
session=None,
) -> requests.Session:
session = session or requests.Session()
retry = Retry(
total=retries,
read=retries,
connect=retries,
backoff_factor=backoff_factor,
status_forcelist=status_forcelist,
)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
for method in ('get', 'options', 'head', 'post', 'put', 'patch', 'delete'):
setattr(session, method, functools.partial(getattr(session, method), timeout=30))
return session
তাহলে আপনি এই জাতীয় কিছু করতে পারেন:
requests_session = requests_retry_session()
r = requests_session.get(url=url,...