エクスポート (0) 印刷
すべて展開
このトピックはまだ評価されていません - このトピックを評価する

CloudQueue.GetMessages メソッド

キューからメッセージのリストを取得します。

名前空間: Microsoft.WindowsAzure.StorageClient
アセンブリ: Microsoft.WindowsAzure.StorageClient (Microsoft.WindowsAzure.StorageClient 内)
'使用
Dim instance As CloudQueue
Dim messageCount As Integer
Dim returnValue As IEnumerable(Of CloudQueueMessage)

returnValue = instance.GetMessages(messageCount)
public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount
)
public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount
)
public function GetMessages (
	messageCount : int
) : IEnumerable<CloudQueueMessage>

パラメーター

messageCount

取得するメッセージの数。

戻り値

メッセージの列挙可能なコレクション。

次に示すのは、メッセージをいくつかキューに追加し、メッセージを取得して、メッセージを削除するコードの例です。

static void RetrieveAndDeleteQueueMessages(Uri queueEndpoint, string accountName, string accountKey)
{
    //Create service client for credentialed access to the Queue service.
    CloudQueueClient queueClient = new CloudQueueClient(queueEndpoint,
        new StorageCredentialsAccountAndKey(accountName, accountKey));

    //Get a reference to a queue in this storage account.
    CloudQueue queue = queueClient.GetQueueReference("myqueue");
    //Create the queue if it does not already exist.
    queue.CreateIfNotExist();

    //Clear any existing messages from the queue.
    queue.Clear();

    //Create some new messages and add them to the queue.
    for (int i = 0; i < 10; i++)
    {
        CloudQueueMessage msg = new CloudQueueMessage("message" + i.ToString());
        queue.AddMessage(msg);
        Console.WriteLine("Adding message with content: " + msg.AsString);
    }

    //Delete five messages from the queue.
    foreach(CloudQueueMessage msg in queue.GetMessages(5))
    {
        Console.WriteLine("Deleting message: " + msg.Id);
        queue.DeleteMessage(msg);
    }

    Console.WriteLine();

    //Delete five more messages from the queue.
    foreach (CloudQueueMessage msg in queue.GetMessages(5))
    {
        Console.WriteLine("Deleting message " + msg.Id);
        queue.DeleteMessage(msg.Id, msg.PopReceipt);
    }
}


GetMessages メソッドは、キューから指定された数のメッセージを取得します。 GetMessages の呼び出しで一度に取得できるメッセージの上限数は 32 件です。

メッセージを取得した後は、キューからメッセージを削除する必要があります。

キューからメッセージを取得すると、NextVisibleTime および PopReceipt プロパティは、サービスによって提供される値で更新されます。 NextVisibleTime は、メッセージを取得したクライアントによってメッセージが削除されない場合に、メッセージを次に読み取ることができるようになる時刻を示します。既定では、この値はメッセージが取得されてから 30 秒後に設定されます。

PopReceipt の値は、メッセージが読み取られたことを示し、削除するメッセージが読み取ったメッセージと同じものであることを確認するために使用されます。

クライアントがメッセージを取得した後、そのメッセージはメッセージの NextVisibleTime プロパティで示されている日時まで削除対象として予約され、この期間中に他のクライアントはそのメッセージを取得できません。 NextVisibleTime プロパティで指定されている日時の前にメッセージが削除された場合、他のクライアントはそのメッセージを再び見ることができるようになります。 その後このメッセージを別のクライアントが取得および削除しなければ、メッセージを取得したクライアントはメッセージを削除できます。

メッセージが初めて取得されると、その DequeueCount プロパティが 1 に設定されます。このメッセージが削除されず、後から再び取得された場合は、DequeueCount プロパティの値が 1 増えます。 クライアントはこの値を使用して、メッセージが取得された回数を確認できます。


この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

開発プラットフォーム

Windows XP Home Edition, Windows XP Professional, Windows Server 2003、Windows Server 2008、および Windows 2000

対象プラットフォーム

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました

コミュニティの追加

表示:
© 2014 Microsoft. All rights reserved.