Как вы реализуете многопоточность в своих скриптах?
- 04.09.2009 01:50
- 04.09.2009 02:32
- Регистрация: 02.09.2009
- Сообщений: 53
- Репутация: 10
Вообще многопоточности в php как таковой нет, только эмуляция )
Пытался делать через curl_multi и сокеты - 04.09.2009 02:40
- 04.09.2009 02:41Код:
function get($base){ $mh = curl_multi_init(); foreach ($base as $i => $url) { $conn[$i]=curl_init($url); curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1); curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($conn[$i], CURLOPT_TIMEOUT, 8); curl_multi_add_handle ($mh,$conn[$i]); } do { $n=curl_multi_exec($mh,$active); } while ($active); foreach ($base as $i => $url) { $res[$i]=curl_multi_getcontent($conn[$i]); curl_close($conn[$i]); } return ($res); } ?>
Спасибо сказали:
kir55rus(29.08.2012), - 04.09.2009 02:53
И ложа сервак? :)
jonn22, а в чем плюс мультикурла?
Я делаю через неблокируемые сокеты.
PHP код:ну типа такогоfor($i = 1; $i <= 100; $i++) {
$query_url = "http://path/to/script.php;
$url_info = parse_url($query_url);
$url_info['port'] = ($url_info['port']) ? $url_info['port'] : 80;
$url_info['path'] = ($url_info['path']) ? $url_info['path'] : '/';
$url_info['query'] = ($url_info['query']) ? '?' . $url_info['query'] : '';
$query = 'GET ' . $url_info['path'].$url_info['query'] . " HTTP/1.1\r\n".
"Content-Type: text/xml\r\n".
'Host: ' . $url_info['host'] . "\r\n".
"\r\n";
$errno = 0;
$error = '';
$socket = fsockopen($url_info['host'], $url_info['port'], $errno, $error, 10);
if(!$socket) echo 'socket problem';
fputs($socket, $query);
fclose($socket);
}
- 04.09.2009 02:55
ну кому как но лично мне та функция ближе к телу чтоли :) плюс она понятнее обычному кодеру. Минус: требует пхп5
- 04.09.2009 04:23
А я использую класс, найденный в интернете, довольно удобный и результат в удобном виде получаем в итоге - описание класса
- 04.09.2009 04:36
- 04.09.2009 04:51
- 04.09.2009 05:46
- Регистрация: 03.09.2009
- Сообщений: 10
- Репутация: 10
я примерно также реализую многопоточность как jonn22
Тэги топика:
- active,
- base,
- conn,
- curl_setopt,
- foreach,
- massrequest,
- unix,
- асинхронный,
- ифрейм,
- класс,
- коннект,
- многопоточность,
- получаться,
- поток,
- потребление,
- скрипт,
- случай,
- сокет,
- сотня,
- удобный