![]() |
PHP. Параллельные запросы
Исходные данные: VPS с 10-12 ядрами.
PHP код:
Задача. Нужно все 10 file_get_contents выполнить одновременно, сократив время в 10 раз. Вопрос. Как? |
Ищите по запросу "multicurl".
|
Попробовал:
curl_multi_init(); curl_multi_exec(); curl_multi_close(); Время:1,68 сек. Прогресс есть, но всего в 2 раза быстрее. Маловато. добавлено через 29 минут Первый раз был удачней. Сейчас стабильно 2 секунды. |
Ненулевая вероятность, что это время параллельного отклика. На ваши запросы должен сформироваться ответ, идущий, к тому-же через защищенное соединение.
Можете вместо curl_multi сделать pcntl_fork несколько раз, получите параллельное исполнение в виде нескольких процессов. |
Шуранов, а как будет через pcntl_fork выглядеть вот этот пример:
PHP код:
Помогите пожалуйста. |
Попробуй неблокирующие сокеты. В сети есть примеры.
|
Направление, - это хорошо. Но лучше бы рабочий пример по условию темы.
|
Мне когда такое понадобилось - просто сделал дополнительный скрипт-запускалку параллельных процессов. Вот такой примерно:
PHP код:
Он за доли секунды запускает сколько указать в цикле параллельных процессов. |
А $host ?
Полученные данные как сохранить? PHP код:
|
Цитата:
А на счет сохранить - как вам надо так и сохраняете. Вариантов масса. Например, каждый поток может сохранять в свой файл. Чтобы названия файлов отличались можно вызывать эти потоки пронумеровано, например так: PHP код:
|
| Текущее время: 02:00. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Техническая поддержка — DevArt.PRO. Перевод: zCarot.