Сколько задач может быть запланировано в одном потоке воздуха? - PullRequest
0 голосов
/ 07 июня 2018

Я совершенно новичок в воздушном потоке и нигде не могу найти, сколько задач можно запланировать в одной группе DAG воздушного потока.И какой может быть максимальный размер каждой задачи.

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

Прочитать полную документацию, но не смог ее найти

1 Ответ

0 голосов
/ 07 июня 2018

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

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

Вот параметры высокоуровневого параллелизма, которые вы можетенастройка:

# The amount of parallelism as a setting to the executor. This defines
# the max number of task instances that should run simultaneously
# on this airflow installation
parallelism = 32

# The number of task instances allowed to run concurrently by the scheduler
dag_concurrency = 16

# Are DAGs paused by default at creation
dags_are_paused_at_creation = True

# When not using pools, tasks are run in the "default pool",
# whose size is guided by this config element
non_pooled_task_slot_count = 128

# The maximum number of active DAG runs per DAG
max_active_runs_per_dag = 16

Ссылка: default_airflow.cfg

Настройки параллелизма более подробно описаны в этом ответе .Что касается максимального «размера» каждой задачи, я предполагаю, что вы имеете в виду распределение ресурсов, таких как память или процессор.Это настраивается пользователем в зависимости от того, какого исполнителя вы выбираете:

  • В простой установке, например, с помощью LocalExecutor, он будет использовать любые ресурсы, доступные на хосте.
  • Напротив, с помощью MesosExecutor, с другой стороны, можно определить максимальный объем ЦП и / или памяти, который будет выделен для экземпляра задачи, и с помощью DockerOperator вы также можете задать максимальный объемПроцессор и память, которые будет использовать данный экземпляр задачи.
  • С помощью CeleryExecutor вы можете установить worker_concurrency, чтобы определить количество экземпляров задачи, которое будет принимать каждый работник.

Другойспособ ограничить выполнение - использовать функцию Pools ( пример ), например, вы можете установить максимальный размер пула задач, обращающихся к базе данных, равным 5, чтобы предотвратить более5 задач от одновременного попадания (и потенциальная перегрузка базы данных / API / любого ресурса, с которым вы хотите объединиться).

...