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