HTTPX PoolTimeout ପ୍ରକ୍ସି ସଂଯୋଗର ଟାଇମଆଉଟ୍ ନୁହେଁ
HTTPX ସଂଯୋଗ ପୁଲ୍ର ଅପେକ୍ଷା ଚିହ୍ନନ୍ତୁ ଏବଂ ପରବର୍ତ୍ତୀ ଅନୁରୋଧ ପାଇ ନଥାଇପାରୁଥିବା ପ୍ରକ୍ସି ବଦଳାଇବା ପୂର୍ବରୁ ଷ୍ଟ୍ରିମିଂ ପ୍ରତିକ୍ରିୟା ମୁକ୍ତ କରନ୍ତୁ।
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 ବଦଳାଇବା ପୂର୍ବରୁ ଖୋଲା ପ୍ରତିକ୍ରିୟା, ସମାନ୍ତରାଳ କାମ ଓ ସଂଯୋଗ ସୀମା ଦେଖନ୍ତୁ। ଯଥାର୍ଥ ସମାନ୍ତରାଳ ଭାର ପାଇଁ ବଡ଼ ପୁଲ୍ ଉପଯୁକ୍ତ ହୋଇପାରେ, କିନ୍ତୁ କେବେ ବନ୍ଦ ନହେଉଥିବା ପ୍ରତିକ୍ରିୟା ସୁଧାରେ ନାହିଁ। ଏହା କେବଳ ଆପ୍କୁ ଦଖଲ କରିବାକୁ ଅଧିକ କ୍ଷମତା ଦିଏ।
ସମଗ୍ର କାମରେ କ୍ଲାଏଣ୍ଟ ପୁନଃ ବ୍ୟବହାରଯୋଗ୍ୟ ରଖନ୍ତୁ। ପ୍ରତି ଅନୁରୋଧ କାମ କରୁଥିବା ଦେଖାଇବାକୁ କ୍ଲାଏଣ୍ଟ ପୁଣି ତିଆରି କଲେ ଜୀବନଚକ୍ର ସମସ୍ୟା ଲୁଚିପାରେ ଏବଂ ସଂଯୋଗ ପୁନଃ ବ୍ୟବହାର ହରାଇପାରେ।