【发布时间】:2011-09-22 20:47:24
【问题描述】:
我有一堆类在网络上执行不同的操作,众所周知,网络操作有时会超时。所以我正在考虑做这样的事情:
package My::Role::NetworkFetcher {
use Moose::Role;
sub BUILD {
my $self = shift;
local $SIG{ALRM} = sub {
$self->handle_timeout;
};
alarm 60;
}
sub handle_timeout {
die "default timeout handler";
}
}
我不确定这是否是解决此问题的最佳方法。 似乎在我非常简单的测试用例中工作正常,但我不确定以这种方式劫持对象的 BUILD 方法或本地化信号处理程序是否正确甚至可取。
【问题讨论】: