параллельные загрузки на PHP
Я хочу загрузить (или просто file_get_contents) для 5 мест. Я жду, скажем, 1,2 секунды для каждого, что означает в общей сложности 1,2X5=6 секунд. Я хочу сэкономить время ожидания. Я думал, что смогу подождать 1,3 секунды, этого достаточно. Как я могу подойти?
4 answers
Вы можете использовать curl_multi_* функции для обеспечения параллельной загрузки.
Это возможно, но только путем создания нескольких потоков вне PHP
С PHP-скриптами, выполняемыми в одном потоке, что означает, что он может выполнять только 1 задачу за раз, единственный способ сделать это с помощью PHP - это создать/использовать внешнее приложение, установленное/размещенное на вашем сервере, и использовать exec для этого и ждать ответа от exec, или использовать функции fork_*, чтобы иметь возможность погружаться и выходить из потоков.
Для начала вы можете запускать загрузки параллельно, разветвляя их в фоновом режиме с помощью php popen: http://www.php.net/manual/en/function.popen.php
Http://code.google.com/p/multicurl-library/
Кстати. вы ищете неблокирующие соединения.