Использование программного компонента#
Базовые функции сервиса#
К основным функциям сервиса Batch Scheduler можно отнести:
создание, обновление, получение, приостановка, удаление Задания;
принудительный запуск вычислений через API;
автоматический асинхронный запуск вычислительных заданий по расписанию;
запуск Заданий в виде вызовов API по протоколу REST.
Примеры сценариев использования#
Сценарий 1. Обработка кредитного портфеля#
Вводные данные#
Дано:
Кредитный портфель банка (N банков с общим объемом Х млн продуктов).
Бизнес-логика формирования событий.
Бизнес-логика обработки событий.
Расписание (окно возможности) формирования и обработки событий конкретного банка.
Необходимо:
Обработать кредитный портфель банка в выделенное окно возможностей.
Уменьшать или увеличивать поток обработки событий в зависимости от доступности ресурсов БД и прочей инфраструктуры.
Решение#
Бизнес-логика обработки события должна быть реализована как запрос API с использованием протокола HTTP. Необходимо совместное использование сервисов Batch Scheduler и Batch Tasks.
Обработка кредитного портфеля#
На каждый из банков создается Задание через Batch Scheduler. Время старта Задания — начало окна возможностей. Задание вызывает HTTP API на стороне клиента.
HTTP API на стороне клиента выполняет следующую логику:
запрос на создание Очереди через Batch Tasks API. На основе количества и времени обработки каждого события возможно изменять параметр количества одновременно обрабатываемых Задач (
maxRunningTasks);накопленные события складываются в Очередь в виде Задач.
При запуске задачи из Очереди вызывается API с протоколом HTTP c бизнес-логикой обработки события.

Управление нагрузкой#
Через API или UI сервиса Batch Tasks можно управлять нагрузкой на клиентский сервис (HttpTarget):
С помощью параметра
maxRunningTasksрегулировать количество одновременно обрабатываемых Задач.С помощью параметра
labelснизить или увеличить процент нагрузки обрабатываемых Очередей.
Сценарий 2. Отправка уведомлений#
Вводные данные#
Дано:
список держателей кредитного договора;
информация по условиям кредитного договора.
Необходимо:
уведомление о внесении платежа приходит в день платежа в 12.00.
Решение#
Бизнес-логика обработки события должна быть реализована как HTTP API. Также необходимо совместное использование сервисов Batch Scheduler и Batch Tasks.
Сервис Batch Scheduler в 12:00 текущего дня запускает Задание (Job) на выполнение.
Задание создает в сервисе Batch Tasks Очередь (Queue) и Задачи (Tasks) для этой Очереди, состоящей из списка лиц, которым необходимо внести сегодня платеж.
Пользователь вызывает метод
heartBeatчерез каждые 5 мин для мониторинга статуса выполнения Задания.Задачи начинают выполняться с начала Очереди, отправляя уведомления о платеже по списку из указанных контактов (Очередь в процессе выполнения может дополняться новыми Задачами).
При выполнении последней Задачи (отправки последнего уведомления) пользователь вызывает финальный метод
callbackдля завершения работы Очереди.Пользователь отправляет финальный метод
callbackдля завершения работы Задания (Job).
Управление нагрузкой#
Через API или UI сервиса Batch Tasks можно управлять нагрузкой на клиентский сервис (HttpTarget):
С помощью параметра
maxRunningTasksотрегулируйте количество одновременно обрабатываемых Задач.Чтобы глобально снизить/увеличить процент нагрузки, объедините Очереди в группы (с помощью параметра
label).