Moja aplikacja łączy się z rabbitMQ. Czasami wrzuca on AMQPTimeoutException. Dokładniej „Błąd wysyłania danych Połączenie Gniazdo limit czasu.”.Czy uchwycenie wyjątku i kontynuowanie realizacji programu jest najlepszą praktyką?
Moje rozwiązanie:
Łapię AMQPTimeoutException i nazywając moją metodę ponownego połączenia. Po czym program kontynuuje normalne wykonywanie. Również ustawiłem flagę tak, że wyjątek jest obsługiwany na poziomie 3 razy.
try
{
sendMethod($message);
} catch (AMQPTimeoutException $e) {
echo "caught socket connection exception". "\n";
$this->reconnect($message, $exchangeName, $queue);
}
//reconnect internally checks the flag
Moje pytanie: czy to najlepsza praktyka? Jeśli nie, jakie inne rozwiązania są możliwe?
Uwaga: Aplikacja jest napisana w języku PHP.
W tej sytuacji wydaje mi się w porządku. Co się stanie, jeśli zawiedzie po 3 próbach? – Clay
To jest naprawdę najlepsza praktyka. Wyświetlanie komunikatów o błędach na użytkownikach może nie tylko powodować problemy u użytkowników, ale także tworzy luki dla hakerów w systemie –
@clayton Program kończy – user3452275