是否可以将消息添加到Azure队列,然后在同一个流程中更新或删除该消息?
这个想法是使用队列来确保完成一些工作 - 有一个工作者角色监视该队列。但是,添加消息的Web角色可能会在事务中取得一些进展(有时甚至完成)。
工作人员已经被设计为处理双重传递和重新处理部分处理的消息(来自之前的失败的工作者尝试) - 所以这里没有技术问题,只是时间效率低下和一些多余的存储事务。
到目前为止,似乎添加消息允许传递延迟,给Web角色一些时间,但不会返回弹出收据,似乎我们需要更新/删除消息。我错过了什么吗?
答案 0 :(得分:0)
似乎此功能已添加为"2016-05-31” REST API
的一部分我们现在在Put Message(又名Add Message)响应中提供pop pop值,该响应允许用户更新/删除消息而无需先检索消息。
答案 1 :(得分:-1)
我建议您按照这些步骤操作
如何:创建队列 CloudQueueClient对象允许您获取队列的引用对象。以下代码创建CloudQueueClient对象。本指南中的所有代码都使用存储在Azure应用程序的服务配置中的存储连接字符串。还有其他方法可以创建CloudStorageAccount对象。有关详细信息,请参阅CloudStorageAccount文档。
// Retrieve storage account from connection string
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the queue client
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
使用queueClient对象获取对要使用的队列的引用。如果队列不存在,您可以创建队列。
// Retrieve a reference to a queue
CloudQueue queue = queueClient.GetQueueReference("myqueue");
// Create the queue if it doesn't already exist
queue.CreateIfNotExists();
如何:将消息插入队列 要将消息插入现有队列,请首先创建一个新的CloudQueueMessage。接下来,调用AddMessage方法。可以从字符串(UTF-8格式)或字节数组创建CloudQueueMessage。这是创建队列的代码(如果它不存在)并插入消息'Hello,World': //从连接字符串中检索存储帐户。 CloudStorageAccount storageAccount = CloudStorageAccount.Parse( CloudConfigurationManager.GetSetting( “StorageConnectionString”));
// Create the queue 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();
// Create a message and add it to the queue.
CloudQueueMessage message = new CloudQueueMessage("Hello, World");
queue.AddMessage(message);
有关详细信息,请参阅此链接。 http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-queues/
Girish Prajwal