Mam problem z kolejkami Rabbit, który reaguje obecnie tylko na pierwszą wiadomość w kolejce, po czym wszystkie inne wiadomości są ignorowane.RabbitMQ słucha tylko pierwszej wiadomości w kolejce
Zacznę uruchamianiu połączenia i deklarując kolejkę w moim IQueueConnectionProvider:
var connectionFactory = new ConnectionFactory() { HostName = hostName };
var connection = _connectionFactory.CreateConnection();
var channel = connection.CreateModel();
To IQueueConnectionProvider jest następnie wykorzystywany w moim IQueueListener jako zależność z tylko jedną metodę:
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);
}
Mój log plik kończy się jako jedna linia "OTRZYMANY KOMUNIKAT", jednak widzę w interfejsie Królik ui, że moje inne usługi przesyłają wiadomości do tej kolejki.
Czy jest tu coś, czego mi brakuje?