параллельные загрузки на PHP


Я хочу загрузить (или просто file_get_contents) для 5 мест. Я жду, скажем, 1,2 секунды для каждого, что означает в общей сложности 1,2X5=6 секунд. Я хочу сэкономить время ожидания. Я думал, что смогу подождать 1,3 секунды, этого достаточно. Как я могу подойти?

Author: Adam Crossland, 2010-10-28

4 answers

Вы можете использовать curl_multi_* функции для обеспечения параллельной загрузки.

 8
Author: codaddict, 2010-10-28 18:52:12

Это возможно, но только путем создания нескольких потоков вне PHP

С PHP-скриптами, выполняемыми в одном потоке, что означает, что он может выполнять только 1 задачу за раз, единственный способ сделать это с помощью PHP - это создать/использовать внешнее приложение, установленное/размещенное на вашем сервере, и использовать exec для этого и ждать ответа от exec, или использовать функции fork_*, чтобы иметь возможность погружаться и выходить из потоков.

 2
Author: RobertPitt, 2010-10-28 18:54:38

Для начала вы можете запускать загрузки параллельно, разветвляя их в фоновом режиме с помощью php popen: http://www.php.net/manual/en/function.popen.php

 1
Author: Pollett, 2010-10-28 18:51:28

Http://code.google.com/p/multicurl-library/

Кстати. вы ищете неблокирующие соединения.

 0
Author: Toby, 2010-10-28 19:59:42