Azure .NET 组件的生命周期(CloudQueueClient,CloudQueue 等)

6
如果我使用.NET SDK从MVC应用程序添加Windows Azure队列项或Blob存储引用,每个组件应保持多长时间?
对于队列,我们有CloudStorageAccount、CloudQueueClient和CloudQueue。
对于Blob存储,我们有CloudStorageAccount、CloudBlobClient和CloudBlobContainer。
我假设最好每个Web请求只创建一次组件,但不知道创建每个项目的成本如何。同样,我假设在Web请求之间保留客户端(例如使用单例生命周期)不是一个好计划,但没有任何依据。
1个回答

7

这些.NET对象是轻量级的。它们在创建时不会分配资源或执行网络操作。除非你创建了很多对象,否则通常不值得缓存或池化。

我们甚至不会在每个请求中对它们进行缓存 - 我们只需要在需要时创建并丢弃它们。缓存可能会减轻垃圾回收器的压力,但我怀疑效果不会太大。


1
你怎么知道这些是轻量级的... 这个有文档记录吗? - John
可能是这样,但我无法立即告诉您确切位置。此外,这已经是一个完整的主要版本之前的事情了,所以现在可能不再适用。我建议查看源代码,因为它们现在都是开源的。 - Brian Reischl
asp.net core 中,你会使用 AddTransient CloudStorageAccount 吗?(而不是 singleton 或 scoped) - Ciantic
我对ASP.Net Core不是特别熟悉,但是从简要阅读文档的角度来看,我认为瞬态或作用域都是合理的选择。 - Brian Reischl
非常好的答案,正是我在寻找的,并且正是应该在文档中的。 - pomeroy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接