La mia app si collega a rabbitMQ. A volte, sta lanciando un AMQPTimeoutException. Più in particolare "Errore l'invio dei dati di connessione socket è scaduta.".Sta ottenendo un'eccezione e l'esecuzione continua del programma è una best practice?
La mia soluzione:
sto cattura il AMQPTimeoutException e chiamando il mio metodo di riconnessione. Dopo di che il programma continua è normale esecuzione. Inoltre ho impostato un flag in modo che l'eccezione venga gestita al massimo 3 volte.
try
{
sendMethod($message);
} catch (AMQPTimeoutException $e) {
echo "caught socket connection exception". "\n";
$this->reconnect($message, $exchangeName, $queue);
}
//reconnect internally checks the flag
La mia domanda: questa è una buona pratica? Se no, quali altre soluzioni sono possibili?
Nota: l'app è scritta in PHP.
In questa situazione, mi sembra soddisfacente. Cosa succede se fallisce dopo 3 tentativi? – Clay
che è davvero la migliore pratica .. visualizzare un messaggio di errore sugli utenti può non solo causare problemi agli utenti ma crea anche buchi per gli hacker sul tuo sistema –
@clayton Il programma termina – user3452275