שטעלט דעם פראקסי פון יעדער 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() דארט קען בלאקירן ווען דער פול פרובירט אנהייבן גראד־צייטיקע ארבעט.

לייגט צו צוריקרופן פאר דערפילטע און אפגעווארפענע רעזולטאטן מיטן עקזיסטירנדיקן באהאנדלונג פון דער אפליקאציע. האלט דעם ארבעט־שליסל, דעם אידענטיפיקאטאר פונעם אויסגעקליבענעם פראקסי און די פרואוו־נומער אין ביידע רעזולטאטן; די ענדיקונג־ארדענונג איז אנדערש פון דער אריינגאנג־ארדענונג. קלויבט נישט באהעלטעניש אן אנדער ענדפונקט אין דער פאבריק נאכדעם וואס איינער איז רעקארדירט פאר דער ארבעט.

דער ווערט פון גראד־צייטיקייט באגרענעצט די ארבעט פון דעם פול. עטלעכע ארבעטן וואס קלייבן איין באגרענעצטן פראקסי אדער קאנטע קענען נאך אלץ דארפן א באזונדער בודזשעט פאר יענעם ענדפונקט.

טייטשט רעזולטאטן לויט שטאפל: אפווארפן דעם ציל, פראקסי־אויטענטיפיקאציע און איבערלויפן פון פֿארבינדונג זענען אנדערע רעזולטאטן. די שיק־אפציעס וואס ווערן געהאלטן מיט דער ארבעט ווייזן וועלכער וועג האט פראדוצירט יעדן רעזולטאט.

פֿאַרבונדענע אַרטיקלען