perl中使用$SIG{ALRM}处理服务超时的例子

发布时间:2020-06-26编辑:脚本学堂
perl中使用$SIG{ALRM}处理服务超时的例子,有需要的朋友可以参考下。注意:该方法对使用DBI连接数据库时,可能无法正常处理连接超时的任务。

perl中使用$SIG{ALRM}处理服务超时的例子,有需要的朋友可以参考下。
注意:
该方法对使用DBI连接数据库时,可能无法正常处理连接超时的任务。

文件名:testsig.pl
 

复制代码 代码如下:
#!/usr/bin/perl
$timeout = 8;  #这里设置超时时间,单位秒
$i = 1;
eval{
local $SIG{ALRM} = sub {print “Timed out.n “; exit(1);};  #程序超时后的返回结果
alarm $timeout;
#----------------------
#等待超时的执行程序开始
while(1){
print $i.”n”;
sleep(1);
$i ++;
}
#等待超时的执行程序结束
#-----------------------
print “Okn”;
alarm 0;
}

运行该script,等待8秒后,结果如下:
$> testsig.pl
1
2
3
4
5
6
7
8
Timed out.
$>