問題:
Azure Storage Queueからメッセージを読み取り、ワーカーロールを使用してそれらをストレージテーブルに挿入しています。
メッセージを読み込みたいのですが、少なくとも100個ある場合にのみメッセージを処理します(これは、発生しているストレージテーブルのバッチ挿入を最適化するためです)。メッセージが100未満の場合は、メッセージ処理をキャンセルして、次のキューの読み取りのためにすぐにキューに再び表示されるようにします。
質問:
CloudQueue.GetMessages(...)
タイムアウトの期限が切れるのを待たずに、読んだばかりのメッセージを表示済みとしてマークすることは可能ですか?
コード: (WorkerRole.cs内)
public override void Run()
{
while (true)
{
var messages = queue.GetMessages(100);
if (messages.Count() >= 100)
{
// This will process, insert into a table, and delete from the queue
ProcessMessages(messages);
}
else
{
//!!! MARK MESSAGES AS VISIBLE ON THE QUEUE
System.Threading.Thread.Sleep(1000);
}
}
}
ありがとう