Exemple #1
0
        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}");
            }
        }
Exemple #2
0
        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}");
        }