static void Main(string[] args) { const string queueName = "Download_Batching_1"; ConnectionFactory factory = new ConnectionFactory() { HostName = "localhost", UserName = "******", Password = "******" }; using var connection = factory.CreateConnection(); Log("connection created. -- Batching 1."); using var channel = connection.CreateModel(); MessageBusConsumerListener <int> listener = new MessageBusConsumerListener <int>(channel, queueName); var subscription = listener.Subscribe(OnNext, OnError, OnCompleted); Console.ReadLine(); subscription.Dispose(); channel.Close(); connection.Close(); //SubMethods void OnNext(Message <int> message) { Log($"Sleep for {message.Body} sec :: delivered at {message.DeliveredAt}."); Thread.Sleep(message.Body * 1000); } void OnError(Exception ex) => Log($"An error occured while handeling a message from the queue. {ex.Message}."); void OnCompleted() => Log("Subscription Disposed."); void Log(string message) { Console.WriteLine($"[{DateTimeOffset.Now}] {message}"); } }
public static void Main(string[] args) { Log("started"); var queueName = "strings_queue"; var factory = new ConnectionFactory() { HostName = "localhost", UserName = "******", Password = "******" }; using var connection = factory.CreateConnection(); Log("rabbitmq connection created"); using var channel = connection.CreateModel(); Log("channel created"); var listener = new MessageBusConsumerListener <string>(channel, queueName); Log("listener created"); var subscription = listener.Subscribe(OnNext, OnError, OnCompleted); Log("listener subscribed"); Console.ReadLine(); subscription.Dispose(); channel.Close(); connection.Close(); void OnCompleted() => Log("Subscription disposed."); void OnError(Exception ex) => Log($"An error occurred while handling a message from the queue. {ex.Message} {ex.StackTrace}."); void OnNext(Message <string> message) => Log($"Received '{message.Body}' (at {message.DeliveredAt})."); void Log(string message) => Console.WriteLine($"[{DateTimeOffset.Now}] {message}"); }