私のウサギのキューには、現在キュー内の最初のメッセージに反応する問題があります。プッシュされている他のメッセージが無視された後です。RabbitMQはキューの最初のメッセージだけを受信します
私は接続をインスタンス化し、私のIQueueConnectionProviderにキューを宣言すると起動します。
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);
}
マイログ:IQueueConnectionProviderはその後、一つだけの方法で依存関係として私のIQueueListenerに使用されている
var connectionFactory = new ConnectionFactory() { HostName = hostName };
var connection = _connectionFactory.CreateConnection();
var channel = connection.CreateModel();
ファイルは "MESSAGE RECEIVED"のように1行しか表示されませんが、Rabbit UIで他のサービスがそのキューにメッセージをプッシュしていることがわかります。
ここに何か不足していますか?