|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.03.2017, 23:42 | #1 |
Новичок
Джуниор
Регистрация: 29.03.2017
Сообщений: 4
|
Многопоточность, исполнение параллельных задач в скрипте
Есть проект, в котором по web сервису идут запросы к нескольким сайтам которые отдают результат.
Необходимо организовать многопоточность что бы Н количесство скриптов запускалось одновременно. Сейчас они запускаются последовательно include("./webser/1.php"); include("./webser/2.php"); ............ include("./webser/.....php"); А надо что бы они исполнялись параллельно, и в случаи зависания они убивались, передавая об этом информацию. Что бы не подвешивать сайт. Каждому скрипту передается несколько параметров, номер запроса, строка поиска. Сервер freebsd php apache |
30.03.2017, 09:03 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
pnctl и иже с ними
|
30.03.2017, 11:01 | #3 |
Новичок
Джуниор
Регистрация: 29.03.2017
Сообщений: 4
|
забыл указать nginx у меня. А на нем не работает pnctl
|
30.03.2017, 11:08 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
Ну ищите библиотеки под nginx
а вообще под вашу задачу думаю отлично multi curl подойдет |
30.03.2017, 11:23 | #5 |
Новичок
Джуниор
Регистрация: 29.03.2017
Сообщений: 4
|
Вот так сделал. Но одно не понятно, как локальный скрипт запускать.
$urls = array( 'http://www.ya.ru/', './webser/1.php', // не получатся его так запустить 'http://test.ru/webser/2.php' //а так не получается передать параметры ); $mh = curl_multi_init(); foreach ($urls as $i => $url) { $conn[$i]=curl_init($url); curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1); //ничего в браузер не давать curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,10); //таймаут соединения curl_multi_add_handle ($mh,$conn[$i]); } //Пока все соединения не отработают do { curl_multi_exec($mh,$active); } while ($active); //разбор полетов for ($i = 0; $i < count($urls); $i++) { //ответ сервера в переменную $res[$i] = curl_multi_getcontent($conn[$i]); curl_multi_remove_handle($mh, $conn[$i]); curl_close($conn[$i]); } curl_multi_close($mh); print_r($res); |
30.03.2017, 12:58 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,177
|
без комментариев.... вам нужны азы PHP
парметры передавать можно через get ...script.php?parametr1=1¶metr2 =2 |
30.03.2017, 15:32 | #7 |
Новичок
Джуниор
Регистрация: 29.03.2017
Сообщений: 4
|
Добил, спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Суммы диагоналей матрицы, параллельных побочной(С++) | anastasiyakrit | Помощь студентам | 3 | 15.11.2016 10:49 |
Помогите оформить мою теорию о пересекающихся параллельных прямых программно в Pascal | Artchi | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 05.07.2016 13:13 |
сортировка в параллельных потоках | Dmitriy90 | Помощь студентам | 4 | 06.04.2012 21:16 |
Определение количества параллельных портов | CyberGirl | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 10.01.2012 12:34 |
о параллельных вычислениях | motorway | PHP | 4 | 20.09.2009 18:22 |