Guzzle Pool: প্ৰতিটো কামৰ প্ৰক্সি requestAsync লৈ পঠিয়াওক
PSR-7 অনুৰোধ বা অৱৰোধকাৰী ফেক্টৰিৰ পৰিৱৰ্তে প্ৰতিটো অছিনক্ৰনাছ অপাৰেচনত প্ৰক্সি অপচন সংযোগ কৰক।
প্ৰতিটো Guzzle কামৰ প্ৰক্সি pool-এ আৰম্ভ কৰা অছিনক্ৰনাছ অপাৰেচনত ৰাখক। বৰ্তমানৰ client ছেটআপৰ ভিতৰত, promise ফেক্টৰি ব্যৱহাৰ কৰক:
$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 প্ৰাৰ্থীয়ে সেই কামৰ credential-মুক্ত প্ৰক্সি URL যোগান ধৰিব পাৰে; নিৰ্বাচন ফেক্টৰি চলাৰ আগতে হয়। এটা PSR-7 অনুৰোধে HTTP বাৰ্তা বৰ্ণনা কৰে, আনহাতে এই পঠোৱা অপচনবোৰে পৰিবহন নিয়ন্ত্ৰণ কৰে। বাৰ্তাৰ কাষত প্ৰক্সি মান প্ৰিন্ট বা সংৰক্ষণ কৰিলে অন্য ধৰণে পঠিওৱা অপাৰেচন কনফিগাৰ কৰিব নোৱাৰে।
ফেক্টৰিৰ পৰা requestAsync() ঘূৰাই দিয়ক। তাত request() কল কৰিলে pool-এ সমান্তৰাল কাম আৰম্ভ কৰিবলৈ যত্ন কৰাৰ সময়ত অৱৰোধ হ'ব পাৰে।
প্ৰয়োগৰ বৰ্তমানৰ ব্যৱস্থাপনা ব্যৱহাৰ কৰি fulfilled আৰু rejected কলবেক যোগ কৰক। কামৰ key, নিৰ্বাচিত প্ৰক্সি identifier আৰু attempt সংখ্যা দুয়োটা ফলাফলত ৰাখক; সমাপ্তিৰ ক্ৰম ইনপুটৰ ক্ৰমতকৈ বেলেগ। কামৰ বাবে এটা ৰেকৰ্ড কৰাৰ পিছত ফেক্টৰিত গোপনে অন্য endpoint বাছনি নকৰিব।
concurrency মানে এই pool-ৰ কাম সীমাবদ্ধ কৰে। এটা সীমিত প্ৰক্সি বা account বাছনি কৰা কেইবাটাও কামে তথাপিও সেই endpoint-ৰ বাবে পৃথক বাজেট প্ৰয়োজন হ'ব পাৰে।
পৰ্যায় অনুসৰি ফলাফল ব্যাখ্যা কৰক: গন্তব্য প্ৰত্যাখ্যান, প্ৰক্সি প্ৰমাণীকৰণ আৰু সংযোগৰ সময়সীমা অতিক্ৰম বেলেগ বেলেগ ফলাফল। কামৰ সৈতে ৰখা পঠোৱা অপচনে দেখুৱায় কোন পথে প্ৰতিটো ফলাফল উৎপন্ন কৰিছে।