本文整理汇总了C#中QueueClient.ReceiveBatchAsync方法的典型用法代码示例。如果您正苦于以下问题:C# QueueClient.ReceiveBatchAsync方法的具体用法?C# QueueClient.ReceiveBatchAsync怎么用?C# QueueClient.ReceiveBatchAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueueClient
的用法示例。
在下文中一共展示了QueueClient.ReceiveBatchAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StartAsync
protected override async Task StartAsync()
{
InfoLogging(string.Format("{0} - Processing", QueueName));
_queueClient = await _clientFactory.CreateServicebusQueueClientAsync(QueueName).ConfigureAwait(false);
var stopWatch = new Stopwatch();
while (!Token.IsCancellationRequested)
{
var messages = await _queueClient
.ReceiveBatchAsync(MessageRetrieveCount, MessageRetrieveTimeout)
.ConfigureAwait(false);
var brokeredMessages = messages as IList<BrokeredMessage> ?? messages.ToList();
if (!brokeredMessages.Any()) continue;
var correlationId = Guid.NewGuid().ToString();
DebugLogging(string.Format("{0} - Received {1} new messages", QueueName, brokeredMessages.Count),
correlationId);
stopWatch.Restart();
await Do(brokeredMessages).ConfigureAwait(false);
stopWatch.Stop();
var timeSpan = stopWatch.Elapsed;
DebugLogging(string.Format("{0} - Processed messages", QueueName), correlationId,
timeSpan.TotalSeconds);
}
}
示例2: Loop
private static async Task Loop(QueueClient q, CancellationToken t)
{
var bs = new List<double>();
var sw = new Stopwatch();
sw.Start();
while (!t.IsCancellationRequested)
{
var msgs = await q.ReceiveBatchAsync(200, TimeSpan.FromSeconds(30));
var completes = msgs.Select(m =>
{
var p = m.GetBody<ProcessInformation>();
return m.CompleteAsync();
});
await Task.WhenAll(completes);
sw.Stop();
var batch = (double)msgs.Count() / (sw.ElapsedMilliseconds / 1000f);
bs.Add(batch);
Console.WriteLine($"Batch: {batch:f2} msgs/s.");
Console.WriteLine($"Average: {bs.Average():f2} msgs/s.");
sw.Restart();
}
}