Beka i-proxy yomsebenzi ngamunye we-Guzzle kumsebenzi we-async oqalwa yipholi. Ngaphakathi kokuhlelwa kweklayenti okukhona, sebenzisa amafektri ezithembiso:

$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();

Umsebenzi ngamunye oqinisekisiwe unikeza indawo nokuya kuyo kanye ne-proxy. Esicelweni somphakathi esivunyelwe, umgadli we-HTTP ovela kuhlu lwe-proxy lwe-HTTP angahlinzeka nge-URL ye-proxy yalowo msebenzi ngaphandle kwezicelo zokuqinisekisa; ukukhetha kwenzeka ngaphambi kokuthi ifektri yayo isebenze. Isicelo se-PSR-7 sichaza umlayezo we-HTTP, kanti lezi zinketho zokuthumela zilawula ukuthuthwa. Ukuphrinta noma ukugcina inani le-proxy eduze komlayezo akukwazi ukuhlela umsebenzi owuthumelayo ngendlela ehlukile.

Buyisela requestAsync() kusuka efektri. Ukushaya request() ehambisanayo lapho kungavimba ngesikhathi ipholi izama ukuqala umsebenzi okanye ngesikhathi.

Engeza ama-callback emiphumela egcwalisiwe neyenqatshiwe usebenzisa ukuphatha okukhona kohlelo. Gcina ukhiye womsebenzi, isihlonzi se-proxy ekhethiwe kanye nenombolo yomzamo kuyo yomibili imiphumela; ukuhleleka kokuqedwa kwehlukile ekuhlelekeni kokufakwa. Ungakhethi ngasese enye indawo yokugcina efektri ngemva kokurekhoda eyodwa yomsebenzi.

Inani lokwenzeka kanyekanye likhawulela umsebenzi wale pholi. Imisebenzi eminingi ekhetha i-proxy eyodwa ekhawulelwe noma i-akhawunti ingase isadinga isabelomali esihlukile sale ndawo yokugcina.

Hlaziya imiphumela ngesigaba: ukwenqatshwa kwendawo, ukuqinisekiswa kwe-proxy nokuphela kwesikhathi sokuxhumana kuyimiphumela ehlukile. Izinketho zokuthumela ezigcinwe nomsebenzi zibonisa ukuthi iyiphi indlela ekhiphe umphumela ngamunye.

Izihloko ezihlobene