在Perl中做超时的方法?

前端之家收集整理的这篇文章主要介绍了在Perl中做超时的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。



我经常使用以下模式来设置Perl中特定代码段的运行时间的上限:
my $TIMEOUT_IN_SECONDS = 5;
eval {
    local $SIG{ALRM} = sub { die "alarm\n" };
    alarm($TIMEOUT_IN_SECONDS);
    # do stuff that might timeout.
    alarm(0);
};
if ($@) {
    # handle timeout condition.
}

我的问题:

这是正确的做法吗?
>是否有任何情况下,运行时间可能超过$TIMEOUT_IN_SECONDS,或上述方法是否有防弹?

解决方法

你可能想看看 Sys::SigAction.我没有使用它,但它有 some glowing reviews.

要注意的一件事是,如果“可能超时的东西”使用睡眠或报警.另外,在错误处理代码中,我假设您已准备好超时以外的错误.

猜你在找的Perl相关文章