Si hallas algún fallo en tu código o trabajo, recuerda probar siempre en un entorno de testing antes subir el código al trabajo final.
Solución:
No te molestes en comprobar.
cola.declarar es una operación idempotente. Entonces, si lo ejecuta una, dos, N veces, el resultado seguirá siendo el mismo.
Si desea asegurarse de que la cola existe, simplemente declárela antes de usarla. Asegúrese de declararlo con la misma durabilidad, exclusividad y eliminación automática cada vez; de lo contrario, obtendrá una excepción.
Si realmente necesita verificar si existe una cola (normalmente no debería necesitarlo), haga una declaración pasiva de la cola. Esa operación tiene éxito si la cola existe, o falla en un error si no existe.
Esto no funcionará en situaciones en las que haya otra persona (otra aplicación) responsable de la declaración q. Y simplemente no podía saber todos los parámetros de la q, solo el nombre.
Preferiría usar pasivaDeclarar y verificar la IOException de que la q no existe
Actualmente puede conocer esa información y mucho más a través de la API HTTP de RabbitMQ Management.
Por ejemplo, para saber si una cola está activa en este momento, puede invocar a GET /api/colas/vhost/nombre interfaz de la API.
Si tienes algún recelo o capacidad de progresar nuestro crónica te insinuamos realizar una aclaración y con placer lo leeremos.