Повторное использование CloudBlobClient Object - PullRequest
9 голосов
/ 30 марта 2012

У меня есть два этих объекта для доступа к хранилищу BLOB-объектов Azure, и я хочу использовать их в приложении ASP.NET MVC.

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("Deesd");

Мой вопрос: могу ли я повторно использовать один и тот же экземпляр объектов во всехзапросы приложений, или я должен создать новый объект в каждом методе?

Ответы [ 3 ]

11 голосов
/ 30 марта 2012

Вы можете повторно использовать экземпляры, но не можете одновременно обращаться к одному и тому же экземпляру из нескольких потоков, поскольку он не является потокобезопасным.

ОБНОВЛЕНИЕ Апрель 2019 (7 лет спустя)

ПРИМЕЧАНИЕ: Всегда обращайтесь к последней документации SDK.

Да, теперь (по крайней мере, с этим обновлением) безопасно использовать CloudBlobClient и другие объекты потокобезопасным способом в новых версиях SDK. Фактически, это поощряется некоторыми документами, которые вы найдете, но технически все еще не гарантировано так и останется таковым (например, будущие основные версии SDK могут от него отказаться)

Как обычно, вам, вероятно, следует предоставлять абстракцию для логики уровня приложения, которая максимально скрывает клиента и его время жизни. Тогда вы позволите абстракции беспокоиться об управлении временем жизни. Может быть, сегодня используется простой статический экземпляр, завтра может быть пул, но, по крайней мере, если есть проблема, большая часть логики вашего приложения абстрагируется от нее. ?

4 голосов
/ 30 марта 2012

Вы можете использовать его повторно. Насколько мне известно, он не содержит никакого состояния, кроме того, с чем он инициализирован.

2 голосов
/ 21 марта 2019

Эта ссылка категорически заявляет, что вы должны повторно использовать один и тот же клиент в запросах, поскольку эти клиенты управляют соединениями и, таким образом, способны оптимизировать базовые вызовы для установления соединения со службой.

Это прямая ссылка на документацию Microsoft говорит то же самое

Рекомендация Cosmos Db аналогична тем, что рекомендует шаблон синглтона для жизнивашей заявки

...