OK. The problem seems to be that I was using many input queues for one bus (many sbc.ReceiveFrom()
calls inside ServiceBusFactory.New()
).
Finally, I created many buses like so:
var _bus = ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMq();
sbc.ReceiveFrom("rabbitmq://localhost/queue0");
sbc.Validate();
sbc.Subscribe(a => a.Handler<Item0>((msg, item) => new Item0Handler().Handle(msg)));
sbc.Subscribe(a => a.Handler<Item1>((msg, item) => new Item1Handler().Handle(msg)));
sbc.Subscribe(a => a.Handler<Item2>((msg, item) => new Item2Handler().Handle(msg)));
});
var _bus2 = ServiceBusFactory.New(sbc =>
{
sbc.UseRabbitMq();
sbc.ReceiveFrom("rabbitmq://localhost/queue1");
sbc.Validate();
sbc.Subscribe(a => a.Handler<Item0>((msg, item) => new Item0Handler().Handle(msg)));
sbc.Subscribe(a => a.Handler<Item2>((msg, item) => new Item2Handler().Handle(msg)));
});