દરેક Guzzle જોબનો પ્રોક્સી પૂલ શરૂ કરે તે અસિંક્રોનસ ઓપરેશન પર મૂકો. હાલના ક્લાયન્ટ સેટઅપની અંદર, પ્રોમિસ ફેક્ટરીઓ વાપરો:

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

દરેક માન્ય જોબ એક લક્ષ્ય અને એક પ્રોક્સી પૂરા પાડે છે. મંજૂર જાહેર વિનંતી માટે, HTTP પ્રોક્સી સૂચિમાંથી HTTP ઉમેદવાર તે જોબનું ક્રેડેન્શિયલ-મુક્ત પ્રોક્સી URL પૂરું પાડી શકે છે; પસંદગી તેની ફેક્ટરી ચાલે તે પહેલાં થાય છે. PSR-7 વિનંતી HTTP સંદેશનું વર્ણન કરે છે, જ્યારે આ મોકલવાના વિકલ્પો પરિવહનને નિયંત્રિત કરે છે. સંદેશની બાજુમાં પ્રોક્સી મૂલ્ય છાપવું કે સંગ્રહવું એ ઓપરેશન ગોઠવી શકતું નથી જે તેને બીજી રીતે મોકલે છે.

ફેક્ટરીમાંથી requestAsync() પરત કરો. ત્યાં સિંક્રોનસ request() કૉલ કરવાથી પૂલ સમાંતર કામ શરૂ કરવાનો પ્રયાસ કરે ત્યારે અવરોધ થઈ શકે છે.

એપ્લિકેશનની હાલની સંભાળ વાપરીને પૂર્ણ અને નકારેલા કૉલબેક ઉમેરો. જોબ કી, પસંદ કરેલ પ્રોક્સી ઓળખ અને પ્રયાસ ક્રમાંક બંને પરિણામોમાં રાખો; પૂર્ણ થવાનો ક્રમ ઇનપુટ ક્રમથી અલગ હોય છે. જોબ માટે એક નોંધ્યા પછી ફેક્ટરીમાં ગુપ્ત રીતે બીજું એન્ડપોઇન્ટ ન પસંદ કરો.

કન્કરન્સી મૂલ્ય આ પૂલના કામને મર્યાદિત કરે છે. એક મર્યાદિત પ્રોક્સી કે ખાતું પસંદ કરતા ઘણા જોબને હજી પણ તે એન્ડપોઇન્ટ માટે અલગ બજેટ ની જરૂર પડી શકે છે.

પરિણામોને તબક્કા પ્રમાણે અર્થઘટન કરો: લક્ષ્યનો અસ્વીકાર, પ્રોક્સી પ્રમાણીકરણ અને કનેક્શન સમયસમાપ્તિ અલગ પરિણામો છે. જોબ સાથે રાખેલા મોકલવાના વિકલ્પો દર્શાવે છે કે કયા માર્ગે દરેક પરિણામ આપ્યું.

સંબંધિત લેખો