私のアプリは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回の試行で失敗した場合はどうなりますか? – Clay
これは本当にベストプラクティスです。ユーザーにエラーメッセージを表示するだけで、ユーザーに問題を引き起こすだけでなく、システム上のハッカーのための穴が作成される可能性があります。 –
@claytonプログラムは終了します – user3452275