Beispiel #1
0
 private IRabbitMessage MessageConverter(TArgs args)
 {
     return(RabbitMessage.WithMessageId(args.ActivityId)
            .PayloadIsJsonOf(args));
 }
 public void Publish(RabbitMessage msg)
 {
     this.Send(msg);
 }
        private void NotifyConsumerOfMessage(string consumerTag, IBasicConsumer consumer, RabbitMessage message)
        {
            Interlocked.Increment(ref _lastDeliveryTag);
            var        deliveryTag     = Convert.ToUInt64(_lastDeliveryTag);
            const bool redelivered     = false;
            var        exchange        = message.Exchange;
            var        routingKey      = message.RoutingKey;
            var        basicProperties = message.BasicProperties ?? CreateBasicProperties();
            var        body            = message.Body;

            Func <ulong, RabbitMessage, RabbitMessage> updateFunction = (key, existingMessage) => existingMessage;

            WorkingMessages.AddOrUpdate(deliveryTag, message, updateFunction);

            consumer.HandleBasicDeliver(consumerTag, deliveryTag, redelivered, exchange, routingKey, basicProperties, body);
        }
Beispiel #4
0
        private static void OnMessage(RabbitMessage msg)
        {
            var str = msg.Read <string>();

            Console.WriteLine("Message received: {0}", str);
        }
Beispiel #5
0
 private async Task ProcessingTaskAsync(RabbitMessage message)
 {
     if (message.Body is null)
     {
         RabbitMessage.Return(message);
         return;
     }
     try
     {
         Core.Log.LibVerbose("Received {0} bytes from the Queue '{1}/{2}'", message.Body.Length, _receiver.Route, _receiver.Name);
         Counters.IncrementTotalReceivingBytes(message.Body.Length);
         if (ResponseServer)
         {
             var evArgs =
                 new RawResponseReceivedEventArgs(_name, message.Body, message.CorrelationId, message.Body.Length)
             {
                 Metadata =
                 {
                     ["AppId"]           = message.Properties.AppId,
                     ["ContentEncoding"] = message.Properties.ContentEncoding,
                     ["ContentType"]     = message.Properties.ContentType,
                     ["DeliveryMode"]    = message.Properties.DeliveryMode.ToString(),
                     ["Expiration"]      = message.Properties.Expiration,
                     ["Priority"]        = message.Properties.Priority.ToString(),
                     ["Timestamp"]       = message.Properties.Timestamp.ToString(),
                     ["Type"]            = message.Properties.Type,
                     ["UserId"]          = message.Properties.UserId,
                     ["ReplyTo"]         = message.Properties.ReplyTo,
                     ["MessageId"]       = message.Properties.MessageId
                 }
             };
             await OnResponseReceivedAsync(evArgs).ConfigureAwait(false);
         }
         else
         {
             var evArgs =
                 new RawRequestReceivedEventArgs(_name, _receiver, message.Body, message.CorrelationId, message.Body.Length)
             {
                 Metadata =
                 {
                     ["AppId"]           = message.Properties.AppId,
                     ["ContentEncoding"] = message.Properties.ContentEncoding,
                     ["ContentType"]     = message.Properties.ContentType,
                     ["DeliveryMode"]    = message.Properties.DeliveryMode.ToString(),
                     ["Expiration"]      = message.Properties.Expiration,
                     ["Priority"]        = message.Properties.Priority.ToString(),
                     ["Timestamp"]       = message.Properties.Timestamp.ToString(),
                     ["Type"]            = message.Properties.Type,
                     ["UserId"]          = message.Properties.UserId,
                     ["ReplyTo"]         = message.Properties.ReplyTo,
                     ["MessageId"]       = message.Properties.MessageId
                 }
             };
             await OnRequestReceivedAsync(evArgs).ConfigureAwait(false);
         }
         Counters.IncrementTotalMessagesProccesed();
     }
     catch (Exception ex)
     {
         Counters.IncrementTotalExceptions();
         Core.Log.Write(ex);
         Interlocked.Exchange(ref _exceptionSleep, 1);
     }
     finally
     {
         RabbitMessage.Return(message);
     }
 }
Beispiel #6
0
 public async Task SaveMessageAsync(RabbitMessage message)
 {
     var date      = DateTime.UtcNow.Date;
     var timestamp = (long)DateTime.UtcNow.ToUnixTime();
     await _messageRepository.SaveAsync(message.ExchangeName, date, timestamp, message.Payload);
 }
        public void Publish(RabbitMessage msg)
        {
            var sender = new Sender(ctx);

            sender.Send(msg);
        }