воздушный поток - как «Заполнить DagBag» только один раз - PullRequest
2 голосов
/ 25 апреля 2019

Мой даг анализирует около 50 секунд, я использую только внешние триггеры для запуска дагов, никаких расписаний. Я заметил, что airflow хочет много заполнить dagbag -> При каждой команде trigger_dag И в фоновом режиме он продолжает проверять папку dags И, по-видимому, мгновенно создает файлы .pyc после развертывания нового .py.

Могу ли я в любом случае развернуть свой кластер и один раз заполнить дагс! Затем в течение следующих 2 недель получите dagruns, запускающиеся мгновенно с любого trigger_dag (сейчас требуется 50 секунд, чтобы заполнить dagbag перед запуском). У меня нет необходимости обновлять определения dag в течение 2 недель.

1 Ответ

0 голосов
/ 25 апреля 2019

50 секунд - невероятно большое количество времени для создания DAG. Похоже, вы используете большой кусок кода (или просто долго работающий) в файле DAG. Это очень плохо практика :

Примечание: Это означает, что весь код верхнего уровня (т. Е. Все, что не определяет DAG) в файле DAG будет запускаться каждый тактовый сигнал планировщика. Старайтесь избегать кода верхнего уровня в своем файле DAG, если в этом нет крайней необходимости.

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

...