Общие сведения
Надёжность и безопасность
Покупка лицензии
Начало работы
Роли в системе
Проекты
Концепции
Компоненты
Инструкции
Задачи
Финансы
Ресурсы
Таймшиты
Клиенты
Вики
Затраты
Отчёты и аналитика
FAQ
Типы отчётов
Использование отчётов
Группировка данных источника
Группировка данных в отчёте
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Экспорт отчётов
Пользовательские настройки отчёта
Вычисляемые поля
Выражения вычисляемых полей
Особые колонки отчётов с временными рядами
Использование панелей мониторинга
Публикация панелей
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
On-premises
API
История изменений
Термины и определения

IScheduledJobHandler

Обновлено: 13.03.2026

IScheduledJobHandler — интерфейс обработчика Задания по расписанию.

Обработчик реализует пользовательскую логику. Система выполняет её автоматически по настроенному расписанию.

Такие задания используются для фоновых операций, которые не связаны напрямую с действиями пользователя.

Назначение

Обработчики заданий по расписанию позволяют реализовать:

  • периодические интеграции с внешними системами;
  • синхронизацию данных;
  • массовую обработку сущностей;
  • автоматическое обновление данных;
  • отправку уведомлений;
  • запуск бизнес-процессов.

Задание настраивается в системе. Оно указывает класс обработчика, который реализует IScheduledJobHandler.

Интерфейс

public interface IScheduledJobHandler
{
    Task Execute(ScheduledJobContext context);
}

Метод Execute

Task Execute(ScheduledJobContext context);

Метод вызывается системой при выполнении задания по расписанию. Внутри метода реализуется основная логика задания.

Параметры

context

Контекст выполнения задания (ScheduledJobContext). Наследует DynamicCodeContext и предоставляет доступ к API системы.

Через контекст можно:

  • получать сервисы сущностей;
  • работать с жизненным циклом сущностей;
  • выполнять HTTP-запросы;
  • отправлять уведомления;
  • получать расписание пользователей;
  • выполнять логирование.

Пример интеграции

Пример задания, выполняющего HTTP-запрос к внешнему API.

public class SyncJob : IScheduledJobHandler
{
    public async Task Execute(ScheduledJobContext context)
    {
        var http = context.GetHttpClient();

        var response = await http.GetStringAsync(
            "https://api.example.com/data"
        );

        await context.Log("Данные успешно получены из внешнего API");
    }
}

Рекомендации

  • Делайте задания идемпотентными (повторный запуск не должен приводить к ошибкам).
  • Используйте context.Log(...) для диагностики работы задания.
  • Для интеграций используйте context.GetHttpClient().
  • При обработке большого количества данных выполняйте выборки через IQueryable, чтобы избежать загрузки лишних данных в память.
Предыдущая
 IEntityTypeCustomHooks
Следующая
ILifecycleRoleResolver 

Содержание

Назначение Интерфейс Метод Execute Параметры Пример интеграции Рекомендации
Ничего не найдено

Перейти на русскую версию?