На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Внимательно изучите правила раздела перед созданием темы
0. ПРИЛАГАЙТЕ СВОИ СКРИПТЫ.
1. Прежде чем создать топик, используйте поиск. Возможно это уже обсуждалось.
2. В топике указывайте ОС, режим работы скрипта (CLI|CGI). Очень желателен вывод лог-файлов и того места, куда у вас назначен вывод данных (STDOUT|STDERR)
3. Помните: вы знаете что вы хотите, а форумчане - нет. Поэтому следуйте простому правилу: грамотный развернутый вопрос - грамотный развернутый ответ.
Модераторы: ANDLL
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
    > Слетает скрипт , Timeout waiting for output from CGI script
      Adil, спасибо Вам огромное :good:
      действительно, запустиль с помощью & и все стало ок.

      ...пустяк, а такую проблему мне создал :jokingly:
      Сообщение отредактировано: Lexa F. -
        Да не за что.
        Может на "ты"? На форуме "выкать" как то не привычно.
          ок ;)
          еще раз тебе спасибо
            можно вопросик.
            как правильно?
            1.
            ExpandedWrap disabled
              #...
              my $server = HTTP::Daemon->new( LocalPort => $port ) or
              die "Can't start server ($@)" unless defined $server;
               
              my $ua = LWP::UserAgent->new; # <<<<<<<<<---
              while (my $connection = $server->accept) {
                $pid = fork();
                if ($pid == 0){
                #...
                my $resp = $ua->simple_request($request);
                #...
                }
              #..

            2.
            ExpandedWrap disabled
              #...
              my $server = HTTP::Daemon->new( LocalPort => $port ) or
              die "Can't start server ($@)" unless defined $server;
               
              while (my $connection = $server->accept) {
                $pid = fork();
                if ($pid == 0){
                my $ua = LWP::UserAgent->new; # <<<<<<<<<---
                #...
                my $resp = $ua->simple_request($request);
                #...
                }
              #..
              Да вообщем-то - без разницы. В первом варианте объект Агент висит в памяти родительского процесса, где, в принципе, не используется, но зато не надо тратить время на его создание в дочернем процессе, как это получается во втором варианте. Т.е. обычная дилемма - размер/быстродействие.
                так во 2 варианте при каждом подключении будет создаваться новый Агент.
                а если подключений в минуту около 1000
                или ничего страшного? и нужно ли его уничтожать потом? как?

                мне самое главное - скорость!
                  Цитата Lexa F. @
                  и нужно ли его уничтожать потом? как?
                  Это перл, он сам подчистит, да и сам по себе удалится при завершение процесса. Если нужно быстродействие - то первый вариант предпочтительней, конечно.
                    спасибо.
                    чтоб добить вопрос: при одновременном использовании Агента в 1000 форках косяков не будет?
                      Не знаю, не пробовал. Попробуешь - расскажи тут :)

                      Добавлено
                      Тут подводный камень - если только Агент уже при создании занимает исходящий порт. Тогда они - в каждом пооцессе свой экземпляр - могут его не поделить. Но это просто проверить на не таком большом числе форков.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0595 ]   [ 15 queries used ]   [ Generated: 15.05.24, 03:57 GMT ]