Qiegħed il-proxy ta' kull xogħol Guzzle fuq l-operazzjoni asinkronika li jibda l-pool. Ġewwa konfigurazzjoni tal-klijent eżistenti, uża fabbriki tal-wegħda:

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

Kull xogħol ivvalidat jipprovdi destinazzjoni u proxy. Għal talba pubblika permessa, kandidat HTTP mil-lista tal-proxy HTTP jista' jipprovdi l-URL tal-proxy ta' dak ix-xogħol mingħajr kredenzjali; l-għażla ssir qabel ma taħdem il-fabbrika tiegħu. Talba PSR-7 tiddeskrivi l-messaġġ HTTP, filwaqt li dawn l-għażliet tal-bgħit jikkontrollaw it-trasport. L-istampar jew il-ħażna ta' valur tal-proxy ħdejn il-messaġġ ma jistax jikkonfigura operazzjoni li tibgħatha b'mod ieħor.

Irritorna requestAsync() mill-fabbrika. Sejħa ta' request() sinkronika hemmhekk tista' timblokka waqt li l-pool qed jipprova jibda xogħol konkorrenti.

Żid callbacks għal riżultati mwettqa u miċħuda bl-użu tal-immaniġġjar eżistenti tal-applikazzjoni. Żomm iċ-ċavetta tax-xogħol, l-identifikatur tal-proxy magħżul u n-numru tal-attentat fiż-żewġ eżiti; l-ordni tat-tlestija hija differenti mill-ordni tal-input. Tagħżilx bil-moħbi punt tat-tmiem ieħor fil-fabbrika wara li jkun irreġistrat wieħed għax-xogħol.

Il-valur tal-konkorrenza jillimita x-xogħol ta' dan il-pool. Diversi xogħlijiet li jagħżlu proxy jew kont wieħed ristrett xorta jistgħu jeħtieġu baġit separat għal dak il-punt tat-tmiem.

Interpreta r-riżultati skont il-fażi: ċaħda tad-destinazzjoni, awtentikazzjoni tal-proxy u timeout tal-konnessjoni huma eżiti differenti. L-għażliet tal-bgħit miżmuma max-xogħol juru liema rotta pproduċiet kull riżultat.

Artikli relatati