|
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования. |
|
Опции темы |
Сегодня | |||||
|
08.04.2017, 11:40 | #1 | |||
Реноме:
1551
|
PHP. Параллельные запросы
Исходные данные: VPS с 10-12 ядрами.
PHP код:
Задача. Нужно все 10 file_get_contents выполнить одновременно, сократив время в 10 раз. Вопрос. Как?
__________________
|
|||
08.04.2017, 14:11 | #3 | |||
Реноме:
1551
|
Попробовал:
curl_multi_init(); curl_multi_exec(); curl_multi_close(); Время:1,68 сек. Прогресс есть, но всего в 2 раза быстрее. Маловато. добавлено через 29 минут Первый раз был удачней. Сейчас стабильно 2 секунды.
__________________
Последний раз редактировалось Port_Artur; 08.04.2017 в 14:40. Причина: Добавлено сообщение |
|||
08.04.2017, 16:05 | #4 | |||
Реноме:
5024
|
Ненулевая вероятность, что это время параллельного отклика. На ваши запросы должен сформироваться ответ, идущий, к тому-же через защищенное соединение.
Можете вместо curl_multi сделать pcntl_fork несколько раз, получите параллельное исполнение в виде нескольких процессов. |
|||
08.04.2017, 16:45 | #5 | |||
Реноме:
1551
|
Шуранов, а как будет через pcntl_fork выглядеть вот этот пример:
PHP код:
Помогите пожалуйста.
__________________
|
|||
08.04.2017, 17:24 | #7 | |||
Реноме:
1551
|
Направление, - это хорошо. Но лучше бы рабочий пример по условию темы.
__________________
|
|||
08.04.2017, 20:14 | #8 | |||
Реноме:
6316
|
Мне когда такое понадобилось - просто сделал дополнительный скрипт-запускалку параллельных процессов. Вот такой примерно:
PHP код:
Он за доли секунды запускает сколько указать в цикле параллельных процессов. Последний раз редактировалось Vitaliy; 08.04.2017 в 20:17. |
|||
08.04.2017, 20:59 | #9 | |||
Реноме:
1551
|
А $host ?
Полученные данные как сохранить? PHP код:
__________________
|
|||
08.04.2017, 22:07 | #10 | |||
Реноме:
6316
|
А на счет сохранить - как вам надо так и сохраняете. Вариантов масса. Например, каждый поток может сохранять в свой файл. Чтобы названия файлов отличались можно вызывать эти потоки пронумеровано, например так: PHP код:
|
|||
Реклама | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
|
|