Grupos de trabajo y colas de inquilinos múltiples con RabbitMQ

Trabajo en una aplicación web que es una aplicación basada en la nube de múltiples inquilinos (muchos clientes, cada uno con su propio "entorno" separado, pero todos en conjuntos de hardware compartidos) y estamos presentando la capacidad para que un usuario procese por lotes trabajo para su posterior procesamiento. Los tipos de trabajo por lotes realmente no son importantes, es solo una cantidad suficiente que hacerlo sin una cola de trabajo no sea realmente práctico. Hemos seleccionado RabbitMQ como nuestro marco de cola subyacente.

Porque somos una aplicación multiinquilino, no necesariamente queremos que los clientes puedan causar largos tiempos de proceso de cola para otro cliente, por lo que una idea que hemos creado es crear una cola por cliente y Tener un grupo de trabajadores compartido apuntando a TODAS nuestras colas de clientes. El problema es que, lo mejor que puedo imaginar, los trabajadores están directamente vinculados a una cola específica, no a un intercambio. En nuestro mundo ideal, las colas de nuestros clientes aún se procesarán, sin que un cliente bloquee a otro, desde un grupo de trabajadores compartido que podemos aumentar o reducir según sea necesario al lanzar más trabajadores o cerrar los inactivos. Tener trabajadores vinculados a una cola específica nos impide esto en un sentido práctico, ya que con frecuencia tenemos muchos trabajadores simplemente inactivos en una cola sin actividad.

¿Existe una forma relativamente sencilla de lograr esto? Soy bastante nuevo en RabbitMQ y realmente no he podido lograr lo que buscamos. Tampoco queremos tener que escribir una aplicación de consumidor multiproceso muy compleja tampoco, eso es un sumidero de tiempo en desarrollo y tiempo de prueba que probablemente no podemos permitirnos. Nuestra pila está basada en Windows / .Net / C # si eso es germaine, pero no creo que eso tenga una influencia importante en la pregunta en cuestión.

Respuestas a la pregunta(4)

Su respuesta a la pregunta