Если вы используете CeleryExecutor
, то, начиная с версии 1.9.0 airflow, вы можете управлять параллелизмом задач Celery. Это не совсем управление памятью, о котором вы спрашивали, а количество одновременно работающих потоков, выполняющих задачи.
Настраиваемый параметр называется CELERYD_CONCURRENCY
, а здесь очень хорошо объясняет, как управлять конфигурацией, связанной с сельдереем, в Airflow.
[редактировать]
На самом деле, Pools
также может использоваться для ограничения параллелизма.
Допустим, вы хотите ограничить потребление ресурсов task_id
, чтобы одновременно запускались только 2 экземпляра. Единственное, что вам нужно сделать, это:
создать пул (в пользовательском интерфейсе: Admin
-> Pools
) присвоить ему имя, например, my_pool
и определите параллелизм задачи в поле Slots
(в данном случае 2
)
при создании экземпляра Operator
, который будет выполнять это task_id
, передать определенное имя пула (pool=my_pool
)