Sto riscontrando un problema con le code di coniglio che al momento reagiscono solo al primo messaggio in coda, dopo che tutti gli altri messaggi inviati vengono ignorati.RabbitMQ ascolta solo il primo messaggio in coda
comincio con un'istanza della connessione e dichiarando la coda nel mio IQueueConnectionProvider:
var connectionFactory = new ConnectionFactory() { HostName = hostName };
var connection = _connectionFactory.CreateConnection();
var channel = connection.CreateModel();
Che IQueueConnectionProvider viene poi utilizzato nel mio IQueueListener come dipendenza con un solo metodo:
public void ListenToQueue(string queue)
{
var channel = _queueConnectionProvider.GetQueue();
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
string path = @"d:\debug.log.txt";
File.AppendAllLines(path, new List<string>() {"MESSAGE RECEIVED", Environment.NewLine });
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
channel.BasicAck(ea.DeliveryTag, false);
};
channel.BasicConsume(queue, true, consumer);
}
Il mio registro il file finisce con una sola riga "MESSAGE RICEVUTO", tuttavia posso vedere nell'interfaccia ui di Rabbit che i miei altri servizi stanno spingendo i messaggi verso quella coda.
C'è qualcosa che mi manca qui?