Set de proxy fan elke Guzzle-taak op de asynkrone operaasje dy't de pool start. Binnen in besteande kliïntynstelling brûkst promis-fabriken:

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

Elke falidearre taak leveret in bestimming en in proxy. Foar in tastiene iepenbiere oanfraach kin in HTTP-kandidaat út de HTTP-proxylist de proxy-URL fan dy taak sûnder bewizen leverje; de seleksje bart foardat syn fabryk draait. In PSR-7-oanfraach beskriuwt it HTTP-berjocht, wylst dizze ferstjoeropsjes it ferfier bestjoere. It printsjen of bewarjen fan in proxywearde njonken it berjocht kin in operaasje dy't it oars ferstjoert net konfigurearje.

Jou requestAsync() werom út it fabryk. It oanroppen fan synkrone request() dêr kin blokkearje wylst de pool besiket parallel wurk te starten.

Foegje callbacks ta foar foltôge en wegere útkomsten mei de besteande ôfhanneling fan 'e app. Hâld de taakkaai, de identifier fan 'e keazen proxy en it besyknûmer yn beide útkomsten; de foltôgingsfolchoarder ferskilt fan 'e ynfierfolchoarder. Kies net temûk in oar einpunt yn it fabryk neidat ien foar de taak fêstlein is.

De gelijktidichheidswaarde beheint it wurk fan dizze pool. Ferskate taken dy't ien beheinde proxy of akkount kieze, kinne noch altyd in apart budzjet foar dat einpunt nedich hawwe.

Ynterpretearje útkomsten per stadium: wegere bestimming, proxy-autentikaasje en ferbiningstimeout binne ferskillende útkomsten. De ferstjoeropsjes dy't by de taak bewarre wurde, litte sjen hokker rûte elk resultaat levere.

Relatearre artikelen