我正在与AzureStorageAccount与 此 msdn 示例中CloudQueueClient描述的方式类似的方式进行交互
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("some connection string");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
Run Code Online (Sandbox Code Playgroud)
并将元素添加到队列(删除一些样板):
var queue = queueClient.GetQueueReference("queuename");
var message = new CloudQueueMessage("myString");
queue.AddMessageAsync(message);
Run Code Online (Sandbox Code Playgroud)
所以这意味着我可以将“myString”添加到我的队列中。伟大的。如果我反复调用这些代码行,我可以多次添加“mystring”。也不错,但效率低下。
如何在一条消息中将多个项目添加到队列中?
我对此进行了一些研究,发现了Entity Group Transactions,这可能是一个合适的选择。但是,这看起来与我一直在做的事情大不相同,并没有真正给我任何代码示例。有什么方法可以使用它并继续使用 Microsoft.WindowsAzure.StorageClientlibary 来构建我的消息吗?
Vla*_*hek -2
我相信没有真正需要在一条消息中将多个项目添加到队列中,因为最佳实践是使消息和相应的消息处理程序尽可能小。
这里很难谈论低效率。但是,当消息数量增长到真正影响性能时,您可以使用该BatchFlushInterval属性来批处理消息。否则,请遵循使用服务总线代理消息传递提高性能的最佳实践
更新:
通过在列表中自行批处理消息,您至少需要解决以下问题,这些问题可能会导致解决方案难以管理:
PS如果您能概述问题的目的,那么可能会找到更好的解决方案。
| 归档时间: |
|
| 查看次数: |
4554 次 |
| 最近记录: |