| | | 1 | | namespace Services.ApiServices.PartsnavigatorApi; |
| | | 2 | | |
| | | 3 | | /// <summary>Настройки парсера partsnavigator.com.au (секция <c>Partsnavigator</c> в appsettings).</summary> |
| | | 4 | | public sealed class PartsnavigatorConfig |
| | | 5 | | { |
| | | 6 | | public const string SectionName = "Partsnavigator"; |
| | | 7 | | public const string HttpClientName = "PartsnavigatorApi"; |
| | | 8 | | |
| | | 9 | | /// <summary>Адрес сервиса-парсера (в нём всего 5 браузерных воркеров, запросы сверх лимита ждут в очереди).</summar |
| | 21 | 10 | | public string BaseUrl { get; init; } = "http://192.168.1.130:8321"; |
| | | 11 | | |
| | | 12 | | /// <summary>Потолок HTTP-таймаута клиента; реальные сроки задают <see cref="CardTimeoutSeconds"/> и <see cref="Anal |
| | 21 | 13 | | public int TimeoutSeconds { get; init; } = 60; |
| | | 14 | | |
| | | 15 | | /// <summary>Карточка без аналогов (<c>analogs=false</c>) отвечает за 0.5–10 с.</summary> |
| | 33 | 16 | | public int CardTimeoutSeconds { get; init; } = 25; |
| | | 17 | | |
| | | 18 | | /// <summary>Страница аналогов у сайта медленная (до 30+ с); держим ниже 60 с — таймаута nginx перед приложением.</s |
| | 24 | 19 | | public int AnalogsTimeoutSeconds { get; init; } = 55; |
| | | 20 | | |
| | | 21 | | /// <summary>Сколько запросов к парсеру одновременно допускает приложение (остальные ждут своей очереди внутри проце |
| | 31 | 22 | | public int MaxConcurrency { get; init; } = 4; |
| | | 23 | | |
| | 34 | 24 | | public int FoundCacheHours { get; init; } = 12; |
| | 25 | 25 | | public int NotFoundCacheMinutes { get; init; } = 30; |
| | 24 | 26 | | public int ErrorCacheSeconds { get; init; } = 20; |
| | | 27 | | } |