@rusgayfer

Как отправить несколько запросов одновременно?

Нужно отправить несколько запросов на обновление одновременно, так как их может-быть до 100 и больше. Как это сделать?
Сейчас работает так: обновляет 10 запросов, и каждую минуту обновляет другие 10 запросов занося дату обновления в базу и так по кругу (выводит первые 10 по дате, которое самые устаревшие и т д обновляет).
Как сделать чтобы все запросы обновляло сразу параллельно их уже около 200 запросов, не нагружая сервер.

<?php 

 define('__ROOT__', dirname(dirname(__FILE__))); 

 require_once(__ROOT__.'/cover/config.php');

 $stmgroups = $db->dbStream->prepare(" SELECT * FROM `groups_cover` WHERE `cover_status` = '1' AND `token_group` != '' AND `cover_morning_bg` != '' ORDER BY `date_render` ASC LIMIT 10 ");
  try {
    $stmgroups->execute();
    } catch (PDOException $error) {
         trigger_error("Ошибка при подключении к базе: {$error}");
    }
 
 $rows = $stmgroups->fetchAll(PDO::FETCH_ASSOC);

 foreach ($rows as $i => $d) {
	
       $url = "https://site.ru/cover/render?group_id={$d['group_id']}&id_cover={$d['id']}";
       $ch = curl_init();
       $timeout = 5;
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
       $file_contents = curl_exec($ch);
       curl_close($ch);	
	
 }

 echo 'ok';

?>
  • Вопрос задан
  • 2088 просмотров
Решения вопроса 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
https://github.com/chuyskywalker/rolling-curl
Не забываем установить setSimultaneousLimit
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
@DanKud
Для асинхронных запросов в PHP используется curl_multi
По поводу "как не нагружать сервер при 200 запросах одновременно" - никак. Естественно при таком количестве асинхронных запросов нагрузка на сервер будет в разы больше, чем при синхронных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект