Автор Тема: Запуск параллельно нескольких скриптов на java или Perl или Php  (Прочитано 3297 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vetalspb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Попытаюсь объяснить вам что я хочу.
У меня около 20 скриптов, которые по моему запросу отдают мне данные в виде xml текста.
Пример:
http://www.test.ru/test.php?query=133
http://www.test1.ru/test1.php?key=133
.......... итд
http://www.test20.ru/test20.php?key=133

Задача состоит в том чтобы эти два скрипта запустить одновременно и по мере получения от них ответов выводить результаты мне на сайт который задает эти запросы.
У меня сейчас все работает в цикле, для этого примера берется цикл в нем сначала
производится
$data_a = File("http://www.test.ru/test.php?query=133");
после выполнения, если есть результаты то они отображаться у меня на сайте
далее в цикле задается второй запрос
$data_a = File("http://www.test1.ru/test1.php?key=133");
и опять если есть результаты то они отображаются...
и так 20 раз с разными запросами
Проблема моего способа в том что у меня в цикле таких запросов сейчас около 20 и каждый выполняется от 0,0001 до 20 сек и получается что в моем случаи поиск проходит от 40 секунд.
А я хочу понять как сделать так чтобы эти запросы выполнялись не последовательно а параллельно, чтобы сразу разослать всем запросы $data_a = File("http://xxxx.xxx");
 а потом по мере их выполнения и получения результатов мне выводить результаты.
Просто у меня в результате получается что мой сайт висит
Может подскажете как это можно сделать.
Если есть какие ни будь мысли то наведите меня на какую ни будь мысль, ну а если нет то буду дальше копать интернет и литературу, но пока все это не
увенчалось какими-нибудь результатами.
Заранее большое спасибо

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
если на perl то читай про threads или IO::Select (или то что тебе еще подскажут знатоки perl)
Если на php - то [p]curl[/p] (но для ПХП5) или [p]socket_select[/p]

Переношу в форум по перл - имхо он более подходит для такой задачи
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Vetalspb

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Здраствуйте.
Необходимо написать скрипт который обходя некоторые сайты собирает с них информацию. У меня для этого каждый сайт посылается POST-запрос fsockopen и читается результат.
Вот пример моего кода
// Формируем HTTP-запрос
$myquery = "POST /$path HTTP/1.0\\r\\n" . "Host: $host\\r\\n" . "Referer: http://$host/$path\\r\\n" .
"Content-Type: application/x-www-form-urlencoded\\r\\n" .
"Content-Length: $kol\\r\\n" . "\\r\\n" . $st;
$fp = fsockopen ($host, 80, $errno, $errstr, 5);
if (!$fp) { //Нет коннекта
} else {
fputs ($fp, $myquery);
while (!feof($fp)) {
$data .= fgets($fp, 128);
}
}
И эта часть в цикле находится. И как я раньше писал есть проблемма времени, каждый запрос выполняеться от секунды и более и при 20 запросах уже получается время выполнения скрипта от 40 секунд
Вопросы:
1) Как уменьшить время выполнения скрипта, допустим паралельные процессы можно сделать
2) И как можно ограничить время выполнения запроса, допустим кусок примера не дает результатов более 10 сек как закаончить выполнение его и приступить к следующему запросу.

Заранее большое спасибо.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Vetalspb:
1) Как уменьшить время выполнения скрипта, допустим паралельные процессы можно сделать

ты вообще читаешь что тебе пишут ? что непонятного я написал в предыдущем сообщении ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28