IPRBackgroundTask
using PRTelegramBot.Core;
namespace PRTelegramBot.BackgroundTasks.Interfaces
{
/// <summary>
/// Интерфейс фоновой задачи.
/// </summary>
public interface IPRBackgroundTask
{
/// <summary>
/// Идентификатор задачи.
/// </summary>
Guid Id { get; }
/// <summary>
/// Проверяет, может ли фоновая задача быть выполнена в текущий момент.
/// Метод вызывается фреймворком перед каждой попыткой выполнения.
/// Возврат false означает, что выполнение будет пропущено и
/// повторная проверка произойдёт при следующем плановом запуске.
/// </summary>
Task<bool> CanExecute();
/// <summary>
/// Запустить выполнение фоновой задачи.
/// </summary>
/// <param name="cancellationToken">Токен отмены.</param>
Task ExecuteAsync(CancellationToken cancellationToken);
/// <summary>
/// Устанавливает экземпляр бота для доступа к его контексту и сервисам.
/// Метод вызывается фреймворком при инициализации фоновой задачи.
/// </summary>
/// <param name="bot">Экземпляр базового класса бота.</param>
Task Initialize(PRBotBase bot);
}
}
Last updated