PoolTimeout মানে HTTPX-এ নিৰ্ধাৰিত অপেক্ষাৰ সময়ৰ ভিতৰত পুলৰ পৰা সংযোগ পোৱা নাই। ই প্ৰক্সিলৈ নতুন TCP সংযোগ টাইমআউট হোৱাৰ প্ৰমাণ নহয়। দ্বিতীয় অনুৰোধ এতিয়াও আপোনাৰ প্ৰক্ৰিয়াৰ ভিতৰত ৰৈ থাকিব পাৰে।

ক্লায়েণ্টে এটা সংযোগ অনুমতি দিলে আৰু প্ৰথম ষ্ট্ৰীমিং সঁহাৰি খোলা থাকিলে এইটো সহজে পুনৰ ঘটাব পাৰি। আন অনুৰোধ আৰম্ভ কৰিলেই সেই সংযোগ নিজে মুক্ত নহয়।

ষ্ট্ৰীমিং সঁহাৰিৰ দায়িত্ব স্পষ্ট ৰাখক

import httpx

limits = httpx.Limits(
    max_connections=1,
    max_keepalive_connections=1,
)
timeout = httpx.Timeout(
    connect=5, read=10, write=10, pool=1
)

with httpx.Client(
    proxy="http://203.0.113.10:8080",
    trust_env=False,
    limits=limits,
    timeout=timeout,
) as client:
    with client.stream("GET", "https://example.com/") as response:
        print(response.status_code)
        for chunk in response.iter_bytes():
            print(len(chunk))

    next_response = client.get("https://example.com/")
    print(next_response.status_code)

চলোৱাৰ আগতে নথিৰ প্ৰক্সি ঠিকনা সলনি কৰক। পিছৰ অনুৰোধ ষ্ট্ৰীমৰ কণ্টেক্সটৰ পৰা ওলোৱাৰ পিছত আৰম্ভ হয়। কোডে লুপ ভাঙক বা ব্যতিক্ৰম তোলক, ওলোৱাৰ সময়ত সঁহাৰি বন্ধ হয়।

client.send(request, stream=True)-ৰ দৰে মেনুৱেল ষ্ট্ৰীমিঙত শেষত বন্ধ কৰাৰ দায়িত্ব আপোনাৰ কোডৰ। AsyncClient-ত সংশ্লিষ্ট হাতে কৰা পৰিষ্কাৰ response.aclose()-ৰে await কৰা হয়। নপঢ়া সঁহাৰি বন্ধ কৰিলে ক্ষমতা খালী হয়, কিন্তু তলৰ সংযোগ পুনৰ ব্যৱহাৰ নকৰি বাদ দিব লাগিবও পাৰে।

ব্যতিক্ৰমৰ নাম পঢ়ক

ConnectTimeout সংযোগ স্থাপনৰ বিষয়। ReadTimeout সঁহাৰিৰ ডেটাৰ অপেক্ষাৰ বিষয়। PoolTimeout সংযোগৰ স্থান পোৱাৰ বিষয়। কেৱল «প্ৰক্সি টাইমআউট» লিখিলে সমাধান বাছিবলৈ প্ৰয়োজনীয় পাৰ্থক্য হেৰায়।

এণ্ডপইণ্ট IP সলনি কৰাৰ আগতে খোলা সঁহাৰি, সমকালীন কাম আৰু সংযোগৰ সীমা চাওক। যুক্তিসংগত সমকালীন বোজাৰ বাবে ডাঙৰ পুল উপযুক্ত হ’ব পাৰে, কিন্তু কেতিয়াও বন্ধ নকৰা সঁহাৰি ঠিক নকৰে। ই কেৱল এপক অধিক ঠাই দখল কৰিবলৈ দিয়ে।

সমগ্ৰ কামত ক্লায়েণ্ট পুনৰ ব্যৱহাৰযোগ্য ৰাখক। প্ৰতিটো অনুৰোধ চলা যেন দেখুৱাবলৈ ক্লায়েণ্ট নতুনকৈ বনালে জীৱনচক্ৰৰ সমস্যা লুকাব পাৰে আৰু সংযোগ পুনৰ ব্যৱহাৰ হেৰুৱাব পাৰে।

সম্পৰ্কিত প্ৰবন্ধ