我有一个 Perl 程序通过 cron 发出这些消息:
recv timed out (60000 ms) at /usr/local/lib/perl/5.8.8/MongoDB/Cursor.pm line 251.
recv timed out (60000 ms) at /usr/local/lib/perl/5.8.8/MongoDB/Cursor.pm line 251.
recv timed out (60000 ms) at /usr/local/lib/perl/5.8.8/MongoDB/Cursor.pm line 251.
我已采取以下步骤来缓解:
超时并不奇怪,因为服务器处于高负载状态。但我想巧妙地捕捉超时并优雅地退出。
有什么建议么?
更新:
我已经确定 recv 超时肯定发生在$cursor->next()调用上。
# doesn't capture
{
local $SIG{__DIE__} = sub { return; };
$doc_ref = $cursor->next();
};
# doesn't capture
eval { $doc_ref = $cursor->next(); };