IPRBackgroundTaskMetadata
using PRTelegramBot.Core;
namespace PRTelegramBot.BackgroundTasks.Interfaces
{
/// <summary>
/// Интерфейс метаданных фоновой задачи.
/// Содержит информацию, необходимую для планирования и управления выполнением задачи
/// без описания её бизнес-логики.
/// </summary>
public interface IPRBackgroundTaskMetadata
{
/// <summary>
/// Идентификаторы ботов, для которых предназначена фоновая задача.
/// Необязательный параметр.
/// Используется для разграничения фоновых задач для разных ботов при работе через DI.
/// Пустая коллекция или наличие значения <see cref="PRConstants.ALL_BOTS_ID"/>
/// означает, что задача применяется ко всем ботам.
/// </summary>
HashSet<long> BotIds { get; }
/// <summary>
/// Уникальный идентификатор фоновой задачи.
/// Используется для сопоставления метаданных и реализации задачи.
/// </summary>
Guid Id { get; }
/// <summary>
/// Уникальное имя фоновой задачи.
/// Используется для логирования, диагностики и идентификации задачи.
/// </summary>
string Name { get; }
/// <summary>
/// Задержка перед первым запуском фоновой задачи в секундах.
/// Значение <c>null</c> или значение меньше либо равное 0 означает немедленный запуск.
/// </summary>
int? InitialDelaySeconds { get; }
/// <summary>
/// Интервал повторного выполнения фоновой задачи в секундах.
/// Минимальный интервал повторения всегда будет 1 секунда.
/// </summary>
int? RepeatSeconds { get; }
/// <summary>
/// Максимальное количество запусков фоновой задачи
/// (включая успешные и неуспешные попытки).
/// Значение <c>null</c> или <c>-1</c> означает неограниченное количество запусков.
/// </summary>
int? MaxRepeatCount { get; }
/// <summary>
/// Максимальное количество попыток выполнения фоновой задачи при ошибках
/// (включая первый запуск).
/// Значение <c>null</c> или <c>-1</c> означает отсутствие ограничения.
/// Значение 1 означает однократное выполнение без повторных попыток при ошибке.
/// </summary>
int? MaxErrorAttempts { get; }
}
}
Last updated