当前位置: 首页>>代码示例>>C#>>正文


C# IBasicConsumer.HandleBasicDeliver方法代码示例

本文整理汇总了C#中IBasicConsumer.HandleBasicDeliver方法的典型用法代码示例。如果您正苦于以下问题:C# IBasicConsumer.HandleBasicDeliver方法的具体用法?C# IBasicConsumer.HandleBasicDeliver怎么用?C# IBasicConsumer.HandleBasicDeliver使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IBasicConsumer的用法示例。


在下文中一共展示了IBasicConsumer.HandleBasicDeliver方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: HandleBasicDeliver

 public void HandleBasicDeliver(IBasicConsumer consumer,
                                string consumerTag,
                                ulong deliveryTag,
                                bool redelivered,
                                string exchange,
                                string routingKey,
                                IBasicProperties basicProperties,
                                byte[] body)
 {
     UnlessShuttingDown(() =>
     {
         try
         {
             consumer.HandleBasicDeliver(consumerTag,
                                         deliveryTag,
                                         redelivered,
                                         exchange,
                                         routingKey,
                                         basicProperties,
                                         body);
         }
         catch (Exception e)
         {
             var details = new Dictionary<string, object>()
             {
                 {"consumer", consumer},
                 {"context",  "HandleBasicDeliver"}
             };
             model.OnCallbackException(CallbackExceptionEventArgs.Build(e, details));
         }
     });
 }
开发者ID:hanxinimm,项目名称:rabbitmq-dotnet-client,代码行数:32,代码来源:ConcurrentConsumerDispatcher.cs

示例2: NotifyConsumerOfMessage

        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;

            consumer.HandleBasicDeliver(consumerTag, deliveryTag, redelivered, exchange, routingKey, basicProperties, body);
        }
开发者ID:paulmccallick,项目名称:RabbitMQ.Fakes,代码行数:12,代码来源:FakeModel.cs

示例3: DequeueAndHandleNextMessage

        private static void DequeueAndHandleNextMessage(IBasicConsumer consumer, Queue<InSingleProcessMemoryMessage> queueBag)
        {
            InSingleProcessMemoryMessage message = null;
            lock (queueBag)
                if (queueBag.Count != 0)
                    message = queueBag.Dequeue();

            if (message == null)
                return;

            // Discard expired messages
            var timestamp = message.BasicProperties.Timestamp;
            if (timestamp > 0 && !String.IsNullOrWhiteSpace(message.BasicProperties.Expiration))
            {
                var expiration = Int64.Parse(message.BasicProperties.Expiration);
                var now = DateTime.Now.ToUnixTime();
                if ((now - timestamp) > expiration)
                    return;
            }

            consumer.HandleBasicDeliver(message.DeliveryTag, message.BasicProperties, message.Body);

            // if do not receive an ack after handle deliver, requeue the message
            if (!AcksReceivedFromConsumers.ContainsKey(message.DeliveryTag))
            {
                lock (queueBag)
                    queueBag.Enqueue(message);
            }
        }
开发者ID:ReactiveServices,项目名称:ReactiveServices.MessageBus.InSingleProcessMemory,代码行数:29,代码来源:InSingleProcessMemoryBus.cs


注:本文中的IBasicConsumer.HandleBasicDeliver方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。