Setzt de Proxy vun all Guzzle-Job op déi asynchron Operatioun, déi de Pool start. An enger bestehender Client-Ariichtung benotzt Dir Promise-Fabrécken:

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

All validéierte Job liwwert en Zil an e Proxy. Fir eng erlaabt ëffentlech Ufro kann en HTTP-Kandidat aus der HTTP-Proxy-Lëscht déi zougangsdatenfräi Proxy-URL vun deem Job liwweren; d'Auswiel geschitt, ier seng Fabréck leeft. Eng PSR-7-Ufro beschreift d'HTTP-Noriicht, wärend dës Sendoptiounen den Transport kontrolléieren. En Proxywäert nieft der Noriicht drécken oder späicheren kann keng Operatioun konfiguréieren, déi en anescht schéckt.

Gitt requestAsync() aus der Fabréck zréck. E synchronen request() do opzeruffen kann blockéieren, wärend de Pool probéiert, gläichzäiteg Aarbecht ze starten.

Füügt Callbacks fir erfëllt an ofgeleent Resultater bäi, andeems Dir déi bestehend Behandlung vun der Applikatioun benotzt. Hält de Jobschlëssel, den Identifiant vum gewielte Proxy an d'Versuchnummer an deenen zwou Resultater; d'Uerdnung vum Ofschloss ënnerscheet sech vun der Inputuerdnung. Wielt net heemlech en aneren Endpunkt an der Fabréck, nodeem een fir de Job festgehale gouf.

De Wäert vun der Gläichzäitegkeet begrenzt d'Aarbecht vun dësem Pool. Méi Jobs, déi een eenzegen ageschränkte Proxy oder Kont wielen, kënnen nach ëmmer e separat Budget fir deen Endpunkt brauchen.

Interpretéiert Resultater no Etapp: Zil-Ablehnung, Proxy-Authentifikatioun an d'Verbindungszäitlimit sinn ënnerschiddlech Resultater. D'Sendoptiounen, déi beim Job behalen ginn, weisen, wéi eng Streck all Resultat produzéiert huet.

Ähnlech Artikelen