work uso tutorial que how does casos .net queue rabbitmq message-queue not-exists

.net - uso - ¿Cómo puedo verificar si existe una cola de mensajes RabbitMQ o no?



rabbitmq python (4)

¿Cómo puedo verificar si ya existe una cola de mensajes?

Tengo 2 aplicaciones diferentes, una creando una cola y la otra leyendo de esa cola.

Entonces, si ejecuto el Cliente que lee primero de la cola, se bloquea.
Así que para evitar eso, me gustaría comprobar primero si existe la cola o no.

Aquí está el fragmento de código de cómo leí la cola:

QueueingBasicConsumer <ConsumerName> = new QueueingBasicConsumer(<ChannelName>); <ChannelName>.BasicConsume("<queuename>", null, <ConsumerName>); BasicDeliverEventArgs e = (BasicDeliverEventArgs)<ConsumerName>.Queue.Dequeue();


Actualmente puedes conocer esa información y mucho más a través de la API HTTP de administración de RabbitMQ .

Por ejemplo, para saber si una cola está activa en este momento, puede invocar a la interfaz GET / api / queues / vhost / name de la API.


Esto no funcionará en situaciones en las que haya otra persona (otra aplicación) responsable de la declaración q. Y simplemente no pude saber todos los parámetros de la q, solo el nombre.

Preferiría usar passiveDeclare y verificar la excepción IOException de que q no existe


No te molestes en comprobar.

queue.declare es una operación idempotente. Por lo tanto, si lo ejecuta una vez, dos veces, N veces, el resultado seguirá siendo el mismo.

Si desea asegurarse de que existe la cola, solo debe declararla antes de usarla. Asegúrese de declararlo con la misma durabilidad, exclusividad y borrado automático cada vez, de lo contrario obtendrá una excepción.

Si realmente necesita verificar si existe una cola (normalmente no debería hacerlo), haga una declaración pasiva de la cola. Esa operación tiene éxito si la cola existe, o falla en un error si no lo hace.


Use QueueDeclare () para realizar esto como se sugiere. Además, lo que siempre hemos hecho es hacer que el consumidor de la cola sea el propietario de la cola, y siempre publicar en los intercambios que son creados y propiedad de los editores. Luego, los consumidores vinculan sus colas a los intercambios de los que desean recibir tráfico y utilizan un filtro de clave de ruta adecuado para el tráfico que desean. De esta manera, los editores no son silenciados por los consumidores para las colas no duraderas, y los consumidores son libres de ir y venir con colas duraderas o no duraderas asignadas con las claves de ruta adecuadas.

Esto da como resultado un sistema de fácil administración y permite que la administración web se utilice para crear una cola duradera y vincularla a un intercambio, obtener algo de tráfico, desvincularlo y luego inspeccionar los contenidos de la cola para comprender qué tráfico y carga está llegando a través del intercambio. .