Set proxy hjá hvørjum Guzzle-arbeiði á ta asynkronu handlingina, sum poolið byrjar. Innan eina verandi klient-uppsetning nýtir tú lyftis-verksmiðjur:

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

Hvørt váttað arbeiði veitir eitt mál og eitt proxy. Fyri eina loyvda almenna ynskj kann ein HTTP-moyligheit úr HTTP-proxy listanum veita proxy-URL hjá tí arbeiðinum uttan samleikaupplýsingar; valið hendir, áðrenn verksmiðjan koyrir. Ein PSR-7-ynskj lýsir HTTP-boðið, meðan hesar sendingar-valmøguleikar stýra flutninginum. At prenta ella goyma eitt proxy-virði við síðuna av boðnum kann ikki seta eina handling, sum sendir tað á annan hátt.

Lat requestAsync() aftur úr verksmiðjuni. At kalla synkrona request() har kann blokkera, meðan poolið roynir at byrja samstundis arbeiði.

Gerð eftirkøll fyri fullgjørd og avvíst úrslit við verandi viðgerð hjá applikatiónini. Varðveit arbeiðslykilin, eyðimerkið hjá valda proxyinum og royndartalið í báðum úrslitum; fullføringar-raðfylgjan er øðrvísi enn inntaks-raðfylgjan. Vel ikki í loyndum ein annan endapunt í verksmiðjuni, eftir at ein er skrásettur fyri arbeiðið.

Virðið fyri samstundisheit avmarkar arbeiðið hjá hesum pooli. Fleiri arbeiði, sum velja eitt avmarkað proxy ella konto, kunnu kortini tørva eitt serstakt fíggjarligt rammu fyri tann endapuntin.

Tulka úrslit eftir stigi: avvísing av máli, proxy-sannroynd og tíðaravmarking í sambandi eru ymisk úrslit. Tey sendingar-valmøguleikar, sum verða varðveitt við arbeiðinum, vísa hvørja leið sum gav hvørt úrslit.

Skyldar greinar