从天蓝色服务总线接收消息

时间:2015-05-18 18:40:13

标签: azure azureservicebus azure-servicebus-queues

可以使用这两种方法之一在天蓝色服务总线中接收消息。

queueClient.BeginReceiveBatch或messageReceiver.ReceiveBatchAsync

这两种方法在速度方面或以任何其他方式有任何区别。

由于

1 个答案:

答案 0 :(得分:1)

如果您不需要批量接收功能,我更喜欢在队列客户端的OnMessage事件上连接回调的方法。我们有一些相当高的吞吐量服务,依赖于这种消息处理模式,没有任何问题(1M +消息/天)

我喜欢您最终使用更少,更简单的代码,并且可以轻松控制并行处理的消息数量的选项,接收模式(查看和锁定,接收和删除)等等

this documentation中有一个示例:

string connectionString =
  CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
QueueClient Client =
  QueueClient.CreateFromConnectionString(connectionString, "TestQueue");

// Configure the callback options
OnMessageOptions options = new OnMessageOptions();
options.AutoComplete = false;
options.AutoRenewTimeout = TimeSpan.FromMinutes(1);

// Callback to handle received messages
Client.OnMessage((message) =>
{
    try
    {
        // Process message from queue
        Console.WriteLine("Body: " + message.GetBody<string>());
        Console.WriteLine("MessageID: " + message.MessageId);
        Console.WriteLine("Test Property: " +
        message.Properties["TestProperty"]);

        // Remove message from queue
        message.Complete();
    }
        catch (Exception)
    {
        // Indicates a problem, unlock message in queue
        message.Abandon();
    }
};