namespace Tnsu.ApprovalRoute.Application.ListPartitioning; /// Настройки нумерованных партиций списков заявок (секция ListPartitioning в конфигурации). public sealed class ListPartitioningOptions { /// /// Порог элементов в списке данных, по достижении которого ставится задача на /// создание следующей партиции (пары списков). /// /// 5000 — не предел SharePoint на число элементов (их может быть миллионы), а /// «list view threshold»: запросы, которым приходится просмотреть больше 5000 /// элементов без подходящего индекса, SharePoint отклоняет. Порог намеренно чуть /// ниже, чтобы задача успела создать следующую партицию до того, как текущая /// начнёт упираться. /// public int ItemCountThreshold { get; set; } = 4500; /// /// Через сколько блокировка провижининга считается брошенной и может быть /// перехвачена (процесс упал, не сняв флаг). См. RequestType.ListPartitioningStartedAt. /// public TimeSpan StaleLockAfter { get; set; } = TimeSpan.FromMinutes(30); /// /// Проверять ли порог в эндпоинте «текущий список». false — эндпоинт только /// отдаёт список, не обращаясь к SharePoint за числом элементов и никого не /// ставя в очередь. Полезно, если SharePoint временно недоступен или нужно /// приостановить автосоздание партиций, не трогая остальную логику. /// public bool CheckThresholdOnRead { get; set; } = true; }