Guzzle Pool. յուրաքանչյուր աշխատանքի վստահված սերվերը փոխանցել requestAsync-ին
Վստահված սերվերի ընտրանքները կցեք յուրաքանչյուր ասինխրոն գործողությանը, ոչ թե PSR-7 հարցում-հաղորդագրությանը կամ արգելափակող ֆաբրիկային։
Տեղադրեք յուրաքանչյուր Guzzle աշխատանքի վստահված սերվերը լողավազանի սկսած ասինխրոն գործողության վրա։ Գործող կլիենտի կարգավորումների ներսում օգտագործեք promise-ֆաբրիկաներ․
$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() կանչելը կարող է արգելափակել, քանի դեռ լողավազանը փորձում է սկսել զուգահեռ աշխատանք։
Ավելացրեք կատարված և մերժված հետկանչեր՝ օգտագործելով հավելվածի առկա մշակումը։ Պահեք աշխատանքի բանալին, ընտրված վստահված սերվերի նույնացուցիչը և փորձի համարը երկու արդյունքներում էլ․ ավարտի հերթականությունը տարբերվում է մուտքի հերթականությունից։ Աշխատանքի համար մեկը գրանցելուց հետո ֆաբրիկայում գաղտնի չընտրեք այլ վերջնակետ։
Զուգահեռության արժեքը սահմանափակում է այս լողավազանի աշխատանքը։ Մեկ սահմանափակ վստահված սերվեր կամ հաշիվ ընտրող մի քանի աշխատանք դեռ կարող են պահանջել առանձին բյուջե այդ վերջնակետի համար։
Մեկնաբանեք արդյունքները ըստ փուլի․ նպատակակետի մերժումը, վստահված սերվերի նույնականացումը և կապի ժամանակի սպառումը տարբեր արդյունքներ են։ Աշխատանքի հետ պահված ուղարկման ընտրանքները ցույց են տալիս, թե որ ուղին է տվել յուրաքանչյուր արդյունքը։