Максимальное время выполнения Perl на веб-сервере - PullRequest
1 голос
/ 23 августа 2010

Как установить время выполнения сценария perl на веб-сервере.Это аналог php в php.ini "max_execution_time" или есть другой способ?

1 Ответ

3 голосов
/ 23 августа 2010

Если вы используете CGI (не mod_perl или FastCGI), возможно, стоит добавить следующее в начало кода:

alarm 30; # SIGALRM delivered to this process after 30 secs

Если в программе нет обработчика для SIGALRM,он умрет.

Пример:

use strict;
use warnings;
alarm 2;
my $n = 0;
while ( 1 ) {
  print "$n\n";
  sleep 1;
  $n++;
}
__END__
$ perl alr
0
1
Alarm clock

Вы можете выбрать, что должно произойти, когда истечет время ожидания, например:

$SIG{ALRM} = sub {
  # do stuff
};

Вы должны поместить этот код раньшеВы используете функцию будильника ().

Примером может служить отправка электронного письма с сообщением о том, что сценарий занял больше времени, чем ожидалось, или что-то подобное.

Сигналы тревоги также можно использовать в качестве сторожевых таймеров дляконкретные разделы кода, такие как:

alarm 5;    # shouldn't take longer than 5 seconds. if not, die.
do_stuff();
alarm 0;    # reset the alarm

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...