ପ୍ରତ୍ୟେକ Guzzle କାର୍ଯ୍ୟର ପ୍ରକ୍ସି ପୁଲ୍ ଆରମ୍ଭ କରୁଥିବା ଏସିଙ୍କ ଅପରେସନ୍ ଉପରେ ରଖନ୍ତୁ। ବିଦ୍ୟମାନ କ୍ଲାଏଣ୍ଟ ସେଟଅପ୍ ଭିତରେ ପ୍ରମିଜ୍ ଫ୍ୟାକ୍ଟ୍ରି ବ୍ୟବହାର କରନ୍ତୁ:

$operations = function () use ($client, $jobs) {
    foreach ($jobs as $id => $job) {
        yield $id => function () use ($client, $job) {
            return $client->requestAsync('GET', $job['url'], [
                'proxy' => $job['proxy'],
                'timeout' => 20,
            ]);
        };
    }
};

$pool = new GuzzleHttp\Pool($client, $operations(), [
    'concurrency' => 4,
]);
$pool->promise()->wait();

ପ୍ରତ୍ୟେକ ଯାଞ୍ଚିତ କାର୍ଯ୍ୟ ଏକ ଗନ୍ତବ୍ୟ ସ୍ଥାନ ଏବଂ ଏକ ପ୍ରକ୍ସି ଦିଏ। ଅନୁମତିପ୍ରାପ୍ତ ସାର୍ବଜନୀନ ଅନୁରୋଧ ପାଇଁ, HTTP ପ୍ରକ୍ସି ତାଲିକାରୁ ଏକ HTTP ପ୍ରାର୍ଥୀ ସେହି କାର୍ଯ୍ୟର ପ୍ରମାଣପତ୍ର-ମୁକ୍ତ ପ୍ରକ୍ସି URL ଦେଇପାରେ; ଚୟନ ଏହାର ଫ୍ୟାକ୍ଟ୍ରି ଚାଲିବା ପୂର୍ବରୁ ହୁଏ। PSR-7 ଅନୁରୋଧ HTTP ସନ୍ଦେଶକୁ ବର୍ଣ୍ଣନା କରେ, ମାତ୍ର ଏହି ପଠାଇବା ବିକଳ୍ପଗୁଡ଼ିକ ପରିବହନକୁ ନିୟନ୍ତ୍ରଣ କରେ। ସନ୍ଦେଶ ପାଖରେ ପ୍ରକ୍ସି ମୂଲ୍ୟ ପ୍ରିଣ୍ଟ କିମ୍ବା ସଞ୍ଚୟ କଲେ ଅନ୍ୟ ଉପାୟରେ ପଠାଉଥିବା ଅପରେସନ୍ କନଫିଗର ହୋଇପାରିବ ନାହିଁ।

ଫ୍ୟାକ୍ଟ୍ରିରୁ requestAsync() ଫେରାନ୍ତୁ। ସେଠାରେ ସିଙ୍କ୍ରୋନସ୍ request() ଡାକିବା ପୁଲ୍ ସମବର୍ତ୍ତୀ କାର୍ଯ୍ୟ ଆରମ୍ଭ କରିବାକୁ ଚେଷ୍ଟା କରୁଥିବା ବେଳେ ଅବରୋଧ କରିପାରେ।

ଆପ୍ଲିକେସନ୍‌ର ବିଦ୍ୟମାନ ପରିଚାଳନା ବ୍ୟବହାର କରି ପୂର୍ଣ୍ଣ ଏବଂ ପ୍ରତ୍ୟାଖ୍ୟାନ କଲବ୍ୟାକ୍ ଯୋଡ଼ନ୍ତୁ। କାର୍ଯ୍ୟ କୀ, ଚୟନିତ ପ୍ରକ୍ସି ପରିଚାୟକ ଏବଂ ପ୍ରୟାସ ସଂଖ୍ୟା ଉଭୟ ଫଳାଫଳରେ ରଖନ୍ତୁ; ସମାପ୍ତି କ୍ରମ ଇନପୁଟ୍ କ୍ରମଠାରୁ ଭିନ୍ନ। କାର୍ଯ୍ୟ ପାଇଁ ଗୋଟିଏ ରେକର୍ଡ କରିବା ପରେ ଫ୍ୟାକ୍ଟ୍ରିରେ ଗୁପ୍ତ ଭାବରେ ଅନ୍ୟ ଏଣ୍ଡପଏଣ୍ଟ ଚୟନ କରନ୍ତୁ ନାହିଁ।

କନକରେନ୍ସି ମୂଲ୍ୟ ଏହି ପୁଲ୍‌ର କାର୍ଯ୍ୟକୁ ସୀମିତ କରେ। ଗୋଟିଏ ସୀମିତ ପ୍ରକ୍ସି କିମ୍ବା ଖାତା ଚୟନ କରୁଥିବା ଅନେକ କାର୍ଯ୍ୟକୁ ତଥାପି ସେହି ଏଣ୍ଡପଏଣ୍ଟ ପାଇଁ ଅଲଗା ବଜେଟ୍ ଆବଶ୍ୟକ ହୋଇପାରେ।

ଫଳାଫଳକୁ ପର୍ଯ୍ୟାୟ ଅନୁସାରେ ବ୍ୟାଖ୍ୟା କରନ୍ତୁ: ଗନ୍ତବ୍ୟ ସ୍ଥାନ ପ୍ରତ୍ୟାଖ୍ୟାନ, ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ଏବଂ ସଂଯୋଗ ସମୟସୀମା ଅତିକ୍ରମ ଭିନ୍ନ ଫଳାଫଳ। କାର୍ଯ୍ୟ ସହିତ ରଖାଯାଇଥିବା ପଠାଇବା ବିକଳ୍ପଗୁଡ଼ିକ ଦେଖାଏ କେଉଁ ପଥ ପ୍ରତ୍ୟେକ ଫଳାଫଳ ଦେଇଛି।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ