Skip to content

Instantly share code, notes, and snippets.

@hakanyalitekingist
Last active May 22, 2021 09:53
static void Main(string[] args)
{
var factory = new ConnectionFactory();
factory.Uri = new Uri("amqp://guest:guest@localhost:5672");
using var connection = factory.CreateConnection();
IModel channel = connection.CreateModel();
/*RabbitMQ'nun bizim için rastgele bir isimde geçici kuyruk oluşturmasını
sağlıyoruz.Bu bir zorunluluk değil, bu Consumer'ı birden çok kez
çalıştırıp aynı mesajları aldığını göstermek için oluşturdum.*/
#region Eğer kalıcı bir kuyruk oluşturmak isteseydik
//var randomQueueName = "log-database-save"; //channel.QueueDeclare().QueueName;
//channel.QueueDeclare(randomQueueName, true, false, true, null);
#endregion
var randomQueueName = channel.QueueDeclare().QueueName;
//Yukarıda tanımladığımız kuyruğu exchange'imizle eşleştiriyoruz.
channel.QueueBind(queue: randomQueueName, exchange: "logs-fanout", routingKey: string.Empty, arguments: null);
channel.BasicQos(prefetchSize:0, prefetchCount:1, global:false);
var consumer = new EventingBasicConsumer(channel);
//Yukarıda oluşturulan randomQueueName'i burada kullanıyoruz.
channel.BasicConsume(queue:randomQueueName,autoAck:false,consumer:consumer);
consumer.Received += (object sender, BasicDeliverEventArgs e) =>
{
var message = Encoding.UTF8.GetString(e.Body.ToArray());
Thread.Sleep(1500);
Console.WriteLine("Gelen Mesaj: " + message);
channel.BasicAck(deliveryTag:e.DeliveryTag, multiple:false);
};
Console.ReadKey();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment