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

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 Параметры Пример интеграции Рекомендации
Спросить ИИ Получить ответ по материалам документации
Введите запрос для поиска по документации
Ничего не найдено, уточните запрос
AI

Похоже, вам удобнее русский язык. Перейти на русскую версию?