2015年Azure队列存储适当的呼叫模式?

Sno*_*owy 3 azure azure-storage-blobs azure-storage-queues retrypolicy

以高效的方式写入Azure Queue Storage的正确调用/代码模式是什么?

现在,伪代码是

使用StorageCredentials和CloudStorage帐户属性创建静态类.在应用程序启动时,将配置文件中的值读入{get;} - 仅属性.

使用具有我的应用程序消息类型的输入参数的异步Task方法创建类.该方法序列化类型,创建新的CloudQueueMessage,新的CloudQueueClient,新的CloudQueue引用.在需要配置信息的地方,从静态类中读取.我的代码然后:

await Task.Run( ()=> theref.AddMessage(themessage).
Run Code Online (Sandbox Code Playgroud)

它看起来好像我在代码中有一些冗余,并且不确定是否/如何将连接汇集到队列中,以及我是否需要重试逻辑,就像我对数据库(SQL Server等)连接一样.

我试图了解哪些队列访问步骤可以以任何方式减少或优化.

所有想法都赞赏.

使用.NET 4.5.2,C#.代码正在Cloud Service(工作者角色)中执行.

谢谢.

Ser*_*ler 5

  • 如果出现服务/网络错误,Azure Storage Client Library会默认为您重试.每次操作最多重试3次.
  • 您可以在单独的线程await theref.AddMessageAsync(themessage)上更改您的调用而不是阻止同步AddMessage调用.
  • 从最新的库开始,您可以重用该CloudQueueClient对象来获取新的引用CloudQueue.
  • 只要您AddMessageAsync按顺序调用,就会尽可能重用相同的连接.如果同时调用它,将创建更多连接,直至ServicePointManager.DefaultConnectionLimit连接.因此,如果您希望并发访问队列,则可能需要增加此数量.
  • ServicePointManager.UseNagleAlgorithm考虑到队列消息的大小,还建议禁用Nagle算法.