Guzzle ଅନୁରୋଧ ସଂଯୋଗ ସ୍ଲଟ୍ ପାଇଁ ଅପେକ୍ଷା କରିବା ସମୟରେ ସମୟ ସମାପ୍ତ ହୋଇପାରେ
ସାଝା handler ଉପରେ cURL multi ର ସକ୍ରିୟ ସଂଯୋଗ ବଜେଟ୍ ସେଟ୍ କରନ୍ତୁ ଏବଂ ସେଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କ୍ୟାଶ୍ କ୍ଷମତାରୁ ଅଲଗା ରଖନ୍ତୁ।
ଯଦି ଏକ ଅସିଙ୍କ୍ରୋନସ୍ ଅନୁରୋଧ ସଂଯୋଗ ଖୋଲିବା ପୂର୍ବରୁ ସମୟ ସମାପ୍ତ ହୁଏ, ତେବେ ନେଟୱାର୍କ ଟାଇମ୍ଆଉଟ୍ ସହିତ ପରିବହନର ସକ୍ରିୟ ସୀମାଗୁଡ଼ିକ ମଧ୍ୟ ଯାଞ୍ଚ କରନ୍ତୁ। ସେହି ସୀମାଗୁଡ଼ିକ ପୂର୍ଣ୍ଣ ହେଲେ libcurl ସ୍ଥାନାନ୍ତରଣଗୁଡ଼ିକୁ ଧାଡ଼ିରେ ରଖେ, ଏବଂ ଧାଡ଼ିରେ ଥିବା ସମୟରେ ସେଗୁଡ଼ିକର ଟାଇମ୍ଆଉଟ୍ ବଜେଟ୍ ଚାଲୁ ରହେ।
Guzzle 7 ର ସାଝା cURL multi handler ପାଇଁ:
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlMultiHandler;
$multi = new CurlMultiHandler([
'options' => [
CURLMOPT_MAX_TOTAL_CONNECTIONS => 24,
CURLMOPT_MAX_HOST_CONNECTIONS => 4,
],
]);
$client = new Client([
'handler' => HandlerStack::create($multi),
]);ଏହି କ୍ଲାଏଣ୍ଟକୁ ଅସିଙ୍କ୍ରୋନସ୍ କାର୍ଯ୍ୟ ପାଇଁ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଅପରେସନ୍ ଗୁଡ଼ିକରେ ଏହାର ଉଦ୍ଦିଷ୍ଟ ପ୍ରକ୍ସି ବିକଳ୍ପ ଦିଅନ୍ତୁ। ମୂଲ୍ୟଗୁଡ଼ିକ ଉଦାହରଣ ବଜେଟ୍। ଜନସାଧାରଣ ମଧ୍ୟସ୍ଥ ମାଧ୍ୟମରେ ଅନୁମତିପ୍ରାପ୍ତ ଜନସାଧାରଣ ଅନୁରୋଧ ପାଇଁ, HTTP ପ୍ରକ୍ସି ତାଲିକା ଅପରେସନ୍ ଗୁଡ଼ିକର ପ୍ରକ୍ସି URL ପାଇଁ ପ୍ରାର୍ଥୀ ପ୍ରଦାନ କରେ।
| ବିକଳ୍ପ | ବଜେଟ୍ |
|---|---|
| MAX_TOTAL_CONNECTIONS | multi handler ଅଧୀନରେ ଏକକାଳୀନ ଖୋଲା ସଂଯୋଗ |
| MAX_HOST_CONNECTIONS | ଏକ ହୋଷ୍ଟ/ପୋର୍ଟକୁ ସଂଯୋଗ; ପ୍ରକ୍ସି ସଂଯୋଗ ପ୍ରକ୍ସି ଏଣ୍ଡପଏଣ୍ଟ ବିରୁଦ୍ଧରେ ଗଣାଯାଏ |
| MAXCONNECTS | ବ୍ୟବହାର ପରେ କ୍ୟାଶ୍ ରେ ରଖାଯାଇଥିବା ସଂଯୋଗ |
ଏକ ସମାନ ପ୍ରକ୍ସି ବ୍ୟବହାର କରୁଥିବା ଅନେକ ୱେବସାଇଟ୍ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଅଲଗା ପ୍ରକ୍ସି ସଂଯୋଗ କୋଟା ପାଆନ୍ତି ନାହିଁ। ନିଷ୍କ୍ରିୟ କ୍ୟାଶ୍ କ୍ଷମତା ପୂର୍ବରୁ ସଂଯୋଗ ଖୋଲେ ନାହିଁ କିମ୍ବା ସେଗୁଡ଼ିକୁ ପରସ୍ପର ବଦଳାଯୋଗ୍ୟ କରେ ନାହିଁ: ପୁନଃବ୍ୟବହାର ମାର୍ଗ, ଗନ୍ତବ୍ୟ, ପ୍ରୋଟୋକଲ୍ ଏବଂ ପ୍ରମାଣୀକରଣ ଉପରେ ନିର୍ଭର କରେ।
ଆପ୍ଲିକେସନ୍ କାର୍ଯ୍ୟ ବଜେଟ୍ ଏବଂ ଯେକୌଣସି ପ୍ରଦାନକାରୀ କୋଟାକୁ ଏହି ପରିବହନ ବଜେଟ୍ ସହିତ ସମନ୍ୱିତ ରଖନ୍ତୁ। ସେମାନେ ସଂଯୋଗ ଗଣନ୍ତି, ପ୍ରତି ସେକେଣ୍ଡ ଅନୁରୋଧ ନୁହେଁ। ସକେଟ୍ ଟାଇମ୍ଆଉଟ୍ ବଢ଼ାଇବା ଦ୍ୱାରା ଧାଡ଼ି କିମ୍ବା ନେଟୱାର୍କ ଅପେକ୍ଷା ସମୟ ନେଲା କି ନାହିଁ ଚିହ୍ନଟ କରାଯାଇପାରିବ ନାହିଁ।