问题:
我正在从 Azure 存储队列读取消息,然后使用辅助角色将它们插入到存储表中。
我想读入消息,但仅在至少有 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);
}
}
}
谢谢