Задача автоматического масштабирования в потоке воздуха - PullRequest
0 голосов
/ 06 мая 2019

Я хочу использовать поток воздуха для обработки изображений.

У меня есть 4 задачи: предварительная обработка изображения (A), поиск ограничивающей рамки (B), классификация (C), завершение изображения (D).

график выглядит так:

A -> B1 -> C  \
  -> B2 -> C  -   D
  -> B3 -> C  /
  -> Bn -> C /

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

Я хочу, чтобы все работало параллельно

Это будет выполняться на 10000 изображений в день, поэтому, если у меня будет различное представление конвейера в пользовательском интерфейсе для каждого изображения, я не смогу отслеживать конвейер ...

Возможно ли это в потоке воздуха?

1 Ответ

1 голос
/ 07 мая 2019

Динамическое создание таких задач, как это не то, для чего лучше всего Airflow. Посмотрите на ответ здесь, чтобы получить некоторое представление: Динамические задачи воздушного потока во время выполнения . Воздушный поток лучше подходит в качестве инструмента планирования, поэтому я предлагаю вам делегировать реальную работу и распараллеливание другому инструменту, например, Celery. Вы все еще можете использовать Airflow для планирования этой работы таким образом, что ваш шаг B представляет собой простой оператор, который считывает выходные данные из A (через XCom или аналогичный) и распределяет фактическую работу некоторым удаленным работникам.

Можете ли вы заранее узнать максимально возможное количество заданий B? Если это управляемо, вы можете сойти с рук при создании задач с максимальным уровнем B, а затем пропустить некоторые из них по мере необходимости в зависимости от результата A. Реализация может быть не тривиальной, но вы можете получить некоторые подсказки из этого обсуждения: Запустить подзадачу с переменными параллельными задачами в потоке воздуха .

...