Добрый день. Обрабатываю через Guzzle асинхронно список сайтов, для каждого сайта нужно использовать рандомный прокси из списка, в документации есть пример, где указывается один прокси для клиента и далее используется для всех запросов, можно ли сделать так, чтобы для каждый запрос выполнялся с рандомным прокси из списка?
$client = new Client([
'timeout' => 10.0,
'proxy' => '51.77.66.35:10563'
]);
$requests = function () {
$handle = fopen("site.txt", "r");
if ($handle) {
while (($s = fgets($handle)) !== false) {
yield new Request('GET', trim($s));
}
fclose($handle);
}
};
$pool = new Pool($client, $requests(), [
'concurrency' => 25,
'fulfilled' => function ($response, $index) {
$body = $response->getBody();
// Обрабатываю $body
},
'rejected' => function ($reason, $index) {
// Обрабатываю ошибки
},
]);
// Инициализируем трансферы и создаём promise
$promise = $pool->promise();
// Ожидаем ответ promise // Принудительно завершаем пул запросов
$promise->wait();