1
如何在Web服務器上設置perl skript的執行時間。這是模擬php中的php.ini「max_execution_time」還是有另一種方式?Perl服務器上的Perl最大執行時間
如何在Web服務器上設置perl skript的執行時間。這是模擬php中的php.ini「max_execution_time」還是有另一種方式?Perl服務器上的Perl最大執行時間
如果您使用的是CGI(不mod_perl的或快速),它可能是值得只是增加對代碼的頂部以下內容:
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
希望
這會有所幫助。
謝謝你,我知道你的意思。 但是,如果我使用mod_perl爲Apache。我在哪裏可以像PHP中那樣設置最大執行時間。有沒有人知道它例如(l)xammp? – Robert 2010-08-24 09:18:38
你可以像上面那樣做同樣的事情,只有在mod_perl下,它會殺死Apache兒童,而不僅僅是CGI。 在mod_perl下。你可以使用類似於: PerlSetEnv PERL_RLIMIT_CPU 120.查看mod_perl文檔! – mfontani 2010-08-24 12:10:41