Saka proxy na kowane aikin Guzzle a kan aikin async da pool ke farawa. A cikin saitin abokin ciniki da ke akwai, yi amfani da masana'antun alkawari:

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

Kowane ingantaccen aiki yana ba da manufa da proxy. Don buƙatar jama'a da aka yarda, ɗan takarar HTTP daga jerin proxy na HTTP zai iya ba da URL ɗin proxy mara shaidar aikin; zaɓin yana faruwa kafin masana'antarsa ta gudana. Buƙatar PSR-7 tana bayyana saƙon HTTP, yayin da waɗannan zaɓuɓɓukan aikawa ke sarrafa jigilar. Bugawa ko adana darajar proxy kusa da saƙon ba zai iya daidaita aikin da ke aika shi ta wata hanya ba.

Mayar da requestAsync() daga masana'antar. Kira request() na sync a wurin zai iya toshewa yayin da pool ke ƙoƙarin fara aiki a lokaci ɗaya.

Ƙara callbacks na cikawa da na ƙi ta amfani da yadda aikace-aikacen ke yi. Riƙe maɓallin aiki, mai gano proxy da aka zaɓa da lambar ƙoƙari a duka sakamakon biyu; tsarin kammalawa ya bambanta da tsarin shigarwa. Kada ka zaɓi wani ƙarshen wuri a asirce a cikin masana'antar bayan an rubuta ɗaya don aikin.

Darajar concurrency tana iyakance aikin wannan pool. Ayyuka da yawa da ke zaɓar proxy ɗaya mai iyaka ko asusu na iya har yanzu buƙatar kasafin kuɗi na daban don wannan ƙarshen wuri.

Fassara sakamako bisa mataki: ƙin manufa, tabbatar da proxy da ƙarewar lokacin haɗi sakamako ne daban-daban. Zaɓuɓɓukan aikawa da aka riƙe tare da aikin suna nuna wace hanya ta samar da kowane sakamako.

Labarai masu alaƙa