【发布时间】:2016-01-11 06:44:50
【问题描述】:
我的应用程序连接到 rabbitMQ。有时,它会抛出 AMQPTimeoutException。更具体地说“发送数据时出错。套接字连接超时。”
我的解决方案:
我正在捕获 AMQPTimeoutException 并调用我的重新连接方法。之后程序继续正常执行。我还设置了一个标志,以便最多处理 3 次异常。
try
{
sendMethod($message);
} catch (AMQPTimeoutException $e) {
echo "caught socket connection exception". "\n";
$this->reconnect($message, $exchangeName, $queue);
}
//reconnect internally checks the flag
我的问题:这是最佳做法吗?如果不是,还有什么其他可能的解决方案?
注意:该应用程序是用 PHP 编写的。
【问题讨论】:
-
在这种情况下,我觉得很好。如果 3 次尝试失败会怎样?
-
这确实是最佳实践.. 向用户显示错误消息可能不仅会给用户带来麻烦,还会为您的系统上的黑客制造漏洞
-
@clayton 程序退出