Базовый пример использования

Предположим, что вы написали набор простых скриптов на Питоне, который делают что-то полезное. Например, один скрипт загружает список спутниковых данных по заданным параметрам. Другие скрипты загружают данные, калибруют, формируют цветное изображение, загружают результат в хранилище. Каждый из скриптов разрабатывается отдельно и легко отлаживается. В процессе работы скриптов образуются временные файлы, часть из которых могут использоваться между скриптами. Все уже вроде бы неплохо работает в ручном режиме и есть необходимость это автоматизировать. Вот тут на помощь и приходит alt_processing.

Конфигурируется две Задачи:

  • Периодическая Задача состоит из Скрипта, который обнаруживает новые данные и для каждой новой сцены создает Событие с параметрами новой сцены.
  • И обрабатывающая Задача, которая состоит из последовательности Скриптов загрузки, калибровки, подготовки изображения и загрузки результатов на сервер. При этом сами Скрипты почти не требуют изменений, все происходит точно так же как если бы Скрипты запускались вручную.

Для каждого События (спутниковой сцены) Система автоматически создает Обработку (последовательность Скриптов), временную общую рабочую директорию, рабочие директории для каждого Скрипта, запускает Скрипты, перезапускает в случае устранимой ошибки, удаляет использованные временные директории поддерживая заданное кол-во свободного места. Пользовательский веб интерфейс позволяет мониторить что происходит в Системе, что исполняется сейчас, сколько выполнилось сегодня успешно, сколько с ошибками. Позволяет задать сколько Обработок для данной Задачи может выполняться одновременно, поставить Задачу на паузу, удалить Обработку, перезапустить один Скрипт или всю Обработку. Все то же самое можно делать с помощью API изнутри Скрипта, что дает большую гибкость, если это необходимо.

Система начала работать, но как всегда, что-то иногда идет не так. Например, один из Скриптов время от времени падает, а по логу непонятно что происходит. В этом случае есть возможность зайти во временную директорию скрипта (пока она не удалена), запустить и отладить сбойный Скрипт в терминале в окружении, приводящим к ошибке. Это сильно упрощает и ускоряет процесс разработки и отладки при одновременной штатной эксплуатации вашей системы.