আপডেট: https://requests.readthedocs.io/en/master/user/advanced/#timeouts
এর নতুন সংস্করণে requests
:
আপনি যদি সময়সীমার জন্য একটি একক মান নির্দিষ্ট করে থাকেন তবে:
r = requests.get('https://github.com', timeout=5)
সময়সীমা মান উভয় connect
এবং read
সময়সীমা প্রয়োগ করা হবে । আপনি আলাদা আলাদাভাবে মান সেট করতে চাইলে একটি টিপল উল্লেখ করুন:
r = requests.get('https://github.com', timeout=(3.05, 27))
যদি রিমোট সার্ভারটি খুব ধীর গতিতে থাকে তবে আপনি কোনও অনুরোধকে টাইমআউট মান হিসাবে না পেরে এবং তারপরে এক কাপ কফি পুনরুদ্ধার করে অনুরোধগুলির জন্য প্রতিক্রিয়াটির জন্য চিরকালের জন্য অপেক্ষা করতে বলতে পারেন।
r = requests.get('https://github.com', timeout=None)
আমার পুরানো (সম্ভবত পুরানো) উত্তর (যা অনেক আগে পোস্ট করা হয়েছিল):
এই সমস্যাটি কাটিয়ে ওঠার অন্যান্য উপায় রয়েছে:
1. TimeoutSauce
অভ্যন্তরীণ ক্লাস ব্যবহার করুন
থেকে: https://github.com/kennethreitz/requests/issues/1928#issuecomment-35811896
import requests from requests.adapters import TimeoutSauce
class MyTimeout(TimeoutSauce):
def __init__(self, *args, **kwargs):
connect = kwargs.get('connect', 5)
read = kwargs.get('read', connect)
super(MyTimeout, self).__init__(connect=connect, read=read)
requests.adapters.TimeoutSauce = MyTimeout
এই কোডটি আমাদের সংযোগের সময়সীমার সমান হিসাবে পঠনের সময়সীমা সেট করার কারণ হতে পারে, যা আপনার সেশন.জেট () কলটিতে পাস করা সময়সীমা মান। (মনে রাখবেন যে আমি আসলে এই কোডটি পরীক্ষা করি নি, তাই এটির জন্য কিছু দ্রুত ডিবাগিংয়ের প্রয়োজন হতে পারে, আমি কেবল এটি সরাসরি গিটহাব উইন্ডোতে লিখেছি))
২. কেভিনবার্কের কাছ থেকে অনুরোধের কাঁটাচামচ ব্যবহার করুন: https://github.com/kevinburke/requests/tree/connect-timeout
এর ডকুমেন্টেশন থেকে: https://github.com/kevinburke/requests/blob/connect-timeout/docs/user/advanced.rst
আপনি যদি সময়সীমার জন্য একটি একক মান নির্দিষ্ট করে থাকেন তবে:
r = requests.get('https://github.com', timeout=5)
কালআউট মানটি সংযুক্ত এবং পঠিত টাইমআউট উভয় ক্ষেত্রেই প্রয়োগ করা হবে। আপনি আলাদা আলাদাভাবে মান সেট করতে চাইলে একটি টিপল উল্লেখ করুন:
r = requests.get('https://github.com', timeout=(3.05, 27))
কেভিনবার্ক এটিকে মূল অনুরোধ প্রকল্পে একীভূত করার জন্য অনুরোধ করেছেন, তবে এটি এখনও গৃহীত হয়নি।