Пример фоновой задачи с реализацией интерфейса метаданных
Класс реализующий IPRBackgroundTask и IPRBackgroundTaskMetadata
В данном примере фоновая задача реализует сразу два интерфейса — IPRBackgroundTask и IPRBackgroundTaskMetadata, объединяя в одном классе как логику выполнения задачи, так и её метаданные.
Интерфейс IPRBackgroundTask отвечает за поведение задачи и определяет:
метод
Initialize— инициализацию задачи с привязкой к экземпляру бота;метод
CanExecute— проверку возможности выполнения задачи;метод
ExecuteAsync— основную логику выполнения фоновой задачи.
Интерфейс IPRBackgroundTaskMetadata используется для описания параметров выполнения задачи и содержит:
Id— уникальный идентификатор фоновой задачи;Name— имя задачи;InitialDelaySeconds— задержку перед первым запуском;RepeatSeconds— интервал повторного выполнения;BotIds— список идентификаторов ботов, для которых задача разрешена (пустой список означает выполнение для всех ботов);MaxErrorAttempts— максимальное количество допустимых ошибок выполнения;MaxRepeatCount— максимальное количество повторений задачи.
В данном примере задача:
запускается с задержкой в 1 секунду;
выполняется каждую секунду без ограничения по количеству повторов;
не имеет ограничения по количеству ошибок выполнения;
доступна для всех ботов.
Такой подход позволяет отказаться от использования атрибутов и задавать метаданные напрямую в классе фоновой задачи, что может быть удобно для динамических или конфигурируемых сценариев выполнения.
Last updated