кэширование и расспаралеливание
Tests / backend-test (pull_request) Successful in 2m3s
Tests / frontend-test (pull_request) Successful in 49s

This commit is contained in:
gorbenko.pavel
2026-08-17 09:56:54 +05:00
parent 1db57ec60c
commit 91a2948284
3 changed files with 82 additions and 7 deletions
@@ -29,11 +29,17 @@ public static class InfrastructureServiceCollectionExtensions
services.Configure<TnsuPortalOptions>(configuration.GetSection("TnsuPortal"));
services.AddHttpClient<TnsuPortalTokenProvider>();
services.AddHttpClient<ITnsuPortalClient, HttpTnsuPortalClient>((sp, client) =>
// ITnsuPortalClient резолвится в CachingTnsuPortalClient (кеш на 5 минут,
// см. её комментарий) — сам HttpTnsuPortalClient регистрируем по
// конкретному типу, а не по интерфейсу, чтобы декоратор мог его получить
// как обычную зависимость.
services.AddHttpClient<HttpTnsuPortalClient>((sp, client) =>
{
var options = sp.GetRequiredService<IOptions<TnsuPortalOptions>>().Value;
client.BaseAddress = new Uri(options.BaseUrl);
});
services.AddMemoryCache();
services.AddScoped<ITnsuPortalClient, CachingTnsuPortalClient>();
return services;
}