Подробности

Постановка задачи

Возможность оптимизировать критически важные для бизнеса задания по обработке файлов.

Подробнее

Пакетные задания планируются в cron как триггер. Некоторые типы заданий могут выполняться одновременно и настроены на одновременное выполнение нескольких заданий одного типа. Принимая во внимание, что некоторые задания из-за транзакционных зависимостей ограничены, чтобы не иметь параллелизма.

Пакетное задание загружает все НОВЫЕ (без истории обработки) файлы из SFTP, размещенного поставщиком услуг, перед началом обработки.

Пошаговый обзор вариантов использования:

  1. Пакетное задание «MyBatchJob» планируется запускать каждые 1 час.
  2. При запуске в 10:00 «MyBatchJob» загружает 3 файла в настроенную папку загрузки — FileName: A.csv, B.CSV, C.csv.
  3. Загрузка завершена, «MyBatchJob» начинает обработку «A.csv».
  4. В 11:00 триггер «MyBatchJob» не обнаружил НОВЫХ файлов, и триггер завершается со статусом «NO_FILES_TO_PROCESS».
  5. Несмотря на то, что B.csv и C.csv ожидают обработки, триггер завершился со статусом «NO_FILES_TO_PROCESS».

Кроме того, при любом сбое или остановке задания в папке загрузки останутся необработанные файлы, требующие ручного вмешательства.

Цель

Ограничьте количество файлов, которые могут быть загружены по расписанию задания, и позвольте следующему параллельному заданию запускать новые файлы и, таким образом, оптимизировать их за счет параллельной обработки файлов.

Сведения об изменении/реализации

  • Предоставлена ​​новая конфигурация для конкретного задания, чтобы установить максимальное количество файлов, загружаемых для каждого триггера/расписания задания. например: maxFileLimitPerSchedule = 1
  • Значение по умолчанию -1 указывает на отсутствие ограничений.

Обязанности

Кодирование, модульное и интеграционное тестирование

Раскрытие информации: после выпуска рабочей версии я установил ограничение и не смог увеличить частоту триггеров заданий в день. Это вызвало отставание, которое позже было обнаружено дежурным инженером и исправлено. К счастью, избыточный процесс пакетного задания практически не повлиял на бизнес, но он съел время инженера по вызову, чтобы найти причину аномалии. Урок получен на горьком опыте!