Для массовой отправки 150 асинхронных запросов в минуту через pool с задержкой в 150 запросов в минуту в Laravel можно использовать пакет Guzzle.
Guzzle предоставляет удобный и гибкий способ отправки HTTP-запросов в Laravel. Он имеет встроенную поддержку асинхронных запросов, что позволяет отправлять несколько запросов одновременно.
Вам понадобится установить Guzzle через Composer, добавив его в зависимости вашего проекта:
composer require guzzlehttp/guzzle
После установки вы можете создать экземпляр Guzzle и настроить его для отправки асинхронных запросов в пуле:
use GuzzleHttpClient; use GuzzleHttpHandlerStack; use GuzzleHttpPromise; $handlerStack = HandlerStack::create(); $client = new Client(['handler' => $handlerStack]); $promises = []; // Генерация и отправка 150 асинхронных запросов for ($i = 0; $i < 150; $i++) { $promises[] = $client->getAsync('https://example.com/api/some-endpoint'); // Задержка в 60 / 150 = 0.4 секунды между запросами usleep(400000); } // Обработка ответов при завершении всех запросов $results = Promiseunwrap($promises); // Дополнительная обработка результатов (например, вывод или сохранение) foreach ($results as $response) { // Обработка ответа echo $response->getBody(); }
В приведенном коде мы сначала создаем экземпляр Guzzle и настраиваем его для отправки асинхронных запросов. Затем мы генерируем 150 асинхронных запросов в цикле, добавляя каждый запрос в массив обещаний (promises). После завершения всех запросов, мы распаковываем ответы с помощью метода unwrap из класса Promise, и обрабатываем каждый ответ отдельно.
Чтобы добавить задержку между каждым запросом, мы используем функцию usleep для приостановки выполнения на заданное количество микросекунд. В данном примере задержка 0.4 секунды между запросами обеспечивает отправку 150 запросов в минуту.
Таким образом, вы сможете использовать Guzzle для массовой отправки 150 асинхронных запросов в минуту с задержкой между каждым запросом в Laravel.