本文整理汇总了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));
}
});
}
示例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);
}
示例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