Настройка срока службы сервисов AWS в .NET Core - PullRequest
0 голосов
/ 07 июня 2019

При добавлении сервисов AWS в коллекцию сервисов в .NET Core, я должен использовать стандартное значение, которое хорошо добавляется как синглтон, или я должен использовать переопределение, чтобы установить в качестве переходного?

Для справки: отображение опции по умолчанию (Singleton) для DynamoDB и Transient для SQS:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
        services.AddHttpContextAccessor();

        // Add AWS Services
        services.AddDefaultAWSOptions(Configuration.GetAWSOptions());
        services.AddAWSService<IAmazonDynamoDB>();
        services.AddAWSService<IAmazonSQS>(lifetime: ServiceLifetime.Transient);
    }

Я видел много примеров использования по умолчанию, но чтение статьи предлагает перейти на Transient, если нет причин использовать Singleton: https://dotnetcoretutorials.com/2017/03/25/net-core-dependency-injection-lifetimes-explained/#comments

1 Ответ

1 голос
/ 03 июля 2019

От разработчика AWS SDK я рекомендую оставить его по умолчанию. Клиенты службы AWS, добавленные в коллекцию, являются потокобезопасными. Мы добавили перегрузку, чтобы задать срок службы службы, чтобы обеспечить гибкость в случае, если кто-то делает что-то действительно необычное.

...