Pregunta

Estoy tratando de implementar los mensajes de prioridad el uso de múltiples colas (cuatro en mi caso) con RabbitMQ y EasyNetQ.

Entiendo que IBus instancia debe ser mantenido viva durante toda la aplicación del ciclo de vida.También, la única manera de detener RabbitMQ de enviar más mensajes en una cola es deshacerse de las IBus el uso de Dispose.

Teniendo en cuenta estos dos contradiciendo factores ¿cómo debo arquitecto de esto?Uno IBus instancia por la cola y si los mensajes en el más importante de la cola son enviadas eliminación (y más tarde recrear) de los menos importantes?

¿Fue útil?

Solución

La priorización no es algo que está disponible fuera de la caja con EasyNetQ/RabbitMQ, así que no hay respuesta fácil a esta pregunta.Usted puede cancelar la suscripción sin disponer de IBus, mediante el consumidor en función de cancelación:

var consumer = bus.Subscribe<MyMessage>( ....
...
// stop consuming:
consumer.Dispose();

Pero yo realmente no creo que esta es la respuesta para el diseño de un sistema de priorización.Usted sería mejor usar el raw RabbitMQ.Cliente y el diseño de su propio IBasicConsumer aplicación que consume a partir de las cuatro colas y tiene la priorización algoritmo codificado en ella.Bastante avanzada cosas tengo miedo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top