какой срок службы выбрать для уровня обслуживания - PullRequest
1 голос
/ 21 апреля 2020

Попытка понять, какой срок службы лучше всего подходит для уровня обслуживания Временный или ограниченный (ПОЧЕМУ). Я ищу плюсы и минусы использования области в качестве сервисных слоев вместо переходных. Служба Transient работает хорошо с транзакцией базы данных или поддерживает уровень службы, так как область действия не очень хорошая вещь. Спасибо

1 Ответ

1 голос
/ 21 апреля 2020

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

Службы с заданной областью полезны, если у вас есть дорогостоящие операции или временное состояние, которое должно сохраняться на время запроса. Соединения с базой данных являются хорошим примером того, потому что соединение с базой данных не очень дешево и использование одного соединения для обработки одного запроса одного пользователя (что не происходит одновременно) работает довольно хорошо. Другими примерами могут быть вычисленные значения поверх данных запроса, например, данные, извлеченные из внешних источников о пользователе (хотя здесь вы можете даже рассмотреть вопрос о более долгом живом кэше).

Если вы не создаете соединение с базой данных сами, скорее всего, у вас уже есть какой-то сервис, через который вам потребуется go для работы с базой данных. Мы надеемся, что этот сервис уже зарегистрирован для использования в качестве области действия. Примером этого является DbContext от Entity Framework Core, который по умолчанию будет зарегистрирован как зависимость с областью действия.

Если вы используете такие службы, вы можете использовать их из временной службы. Множественные (временные) сервисы просто получат один и тот же экземпляр. Но это деталь реализации, с которой ваши сервисы не должны беспокоиться. Таким образом, предложение по умолчанию все еще имеет значение: Зарегистрируйте службу как переходную.

При выборе между переходной и областью действия также полезно рассмотреть следующий вопрос: разрешается ли служба несколько раз при обработке одного запроса ? Есть ли проблема при создании отдельного экземпляра каждый раз (например, это дорогая операция)? Тогда вам может помочь выбор продолжительности жизни.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...