Azure Service Bus读取消息队列

时间:2015-02-20 14:12:23

标签: c# azure-servicebus-queues

我对Azure很新,但很难设计或找到一种方法来读取队列中的消息。我有以下内容:

  • Cloud Service
  • 存储帐户
  • 队列

我现在正在努力的是,我可以通过漂亮的图表看到Portal给我收到的消息但是我希望看到它们的内容,这似乎至少无法通过Portal进行。

所以我开始手工破解一些代码来获取这些消息,但这也不起作用。

    var credentials = new StorageCredentials("account", "key");
    var storageAccount = new CloudStorageAccount(credentials, true);
    var queue = storageAccount.CreateCloudQueueClient();
    var messages = queue.GetQueueReference("orders").GetMessages(100, TimeSpan.FromHours(10), null, null);

我没有得到的是我需要将我的队列与存储相关联吗?

干杯,DS。

1 个答案:

答案 0 :(得分:0)

这是一个从队列中检索消息的简单示例。首先,您需要创建CloudStorageAccount,以引用特定存储。其次,您创建一个新的CloudQueueClient,以便连接到您的CloudStorageAccount。获得CloudQueueClient后,您可以引用该队列并创建它。

        // Your Storage credentials
        var credentials = new StorageCredentials("account", "key");


        var storageAccount = new CloudStorageAccount(credentials, true);

        // Create a new client
        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

        // Retrieve a reference to a queue
        CloudQueue queue = queueClient.GetQueueReference("myqueue");

        // Create the queue if it doesn't already exist
        queue.CreateIfNotExists();

        // Send 10 messages to the queue
        for (int i = 0; i < 10; i++)
        {
            // Create a message and add it to the queue.
            CloudQueueMessage message = new CloudQueueMessage(string.Format("Hello, World {0}", i));
            queue.AddMessage(message);
        }

        // Read next 20 messages
        foreach (CloudQueueMessage message in queue.GetMessages(20, TimeSpan.FromMinutes(5)))
        {
            // Reading content from message
            Console.WriteLine(message.AsString);

            // Process all messages in less than 5 minutes, deleting each message after processing.
            queue.DeleteMessage(message);
        }