Нет ограничений на количество задач, которые могут быть частью одной группы доступности базы данных.
С помощью конфигурации 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 / любого ресурса, с которым вы хотите объединиться).