エクスポート (0) 印刷
すべて展開

CloudQueue.GetMessages メソッド

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

名前空間: Microsoft.WindowsAzure.StorageClient
アセンブリ: Microsoft.WindowsAzure.StorageClient (Microsoft.WindowsAzure.StorageClient 内)

'使用
Dim instance As CloudQueue
Dim messageCount As Integer
Dim visibilityTimeout As TimeSpan
Dim returnValue As IEnumerable(Of CloudQueueMessage)

returnValue = instance.GetMessages(messageCount, visibilityTimeout)

public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount,
	TimeSpan visibilityTimeout
)
public IEnumerable<CloudQueueMessage> GetMessages (
	int messageCount, 
	TimeSpan visibilityTimeout
)
public function GetMessages (
	messageCount : int, 
	visibilityTimeout : TimeSpan
) : IEnumerable<CloudQueueMessage>

パラメーター

messageCount

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

visibilityTimeout

表示タイムアウト間隔。

戻り値

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

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

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 は、メッセージを取得したクライアントによってメッセージが削除されていない場合に、メッセージの読み取りが次に可能になる時刻を示します。 この値は、メッセージの取得時刻に visibilityTimeout パラメーターの値を加算することで求められます。 visibilityTimeout パラメーターに対して指定できる最大値は 2 時間です。

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

対象プラットフォーム

コミュニティの追加

表示:
© 2014 Microsoft