Size: a a a

2020 September 04

FD

Farkhad Dzhum in Airflow
Смотрю по логам и получается, что воркер так же исполняет весь даг-файл (скрипт)
источник

FD

Farkhad Dzhum in Airflow
т.к. при каждом запуске task instance у меня скачок по подключениям к БД
источник

VS

Vladislav 👻 Shishkov... in Airflow
значит так сгенерировали
источник

FD

Farkhad Dzhum in Airflow
так я использую примеры  с офф сайта (https://airflow.apache.org/docs/stable/faq.html#how-can-i-create-dags-dynamically)
источник

FD

Farkhad Dzhum in Airflow
смысл этой автогенерации, если при каждом запуске таски воркер будет генерировать одно и тоже
источник

A

Alex in Airflow
Генерируй не даги а сразу питон файлы и будет счастье🙂
источник

S

S in Airflow
Alex
Генерируй не даги а сразу питон файлы и будет счастье🙂
😁
источник

FD

Farkhad Dzhum in Airflow
источник

DM

Dan M. in Airflow
Привет всем, может кто подскажет, как решить задачку.
у меня есть pythonoperator, который при определённом условии поднимает AirflowException и отправляется на ретрай с некоторой дельтой, соответсвенно после n неудачных попыток ставит себе fail и пускает таск с триггером one_failed
Вопрос: как мне различить exception от натуральной ошибки и тот который я поднимаю в trigger_rule?
источник

FD

Farkhad Dzhum in Airflow
Можно решить доп параметром (аргументом), который по умолчанию нулл, а при ретрае флаг
источник

DM

Dan M. in Airflow
Откуда его можно вытянуть? Из контекста ?
источник

DM

Dan M. in Airflow
Я вроде придумал сделать Branch, и про перехвате разных ошибок слать на разные таски, но как-то пока не победил
источник

VN

Vova Narovchatskiy in Airflow
Всем доброго дня!

Есть вопрос по шаблонам jinja. Использую их в EmailOperator-e. В письме шаблоны не подставляют значения

html_content="Templated Content: date: {{ds}} task_key - {{ task_instance_key_str }} test_mode - {{ test_mode }} task_owner - {{ task.owner}} hostname - {{ ti.hostname }}",
источник

VN

Vova Narovchatskiy in Airflow
Может кому пригодится - нашел решение. EmailOperator обернул в PythonOperator и перед email_op.execute(context) вызвал email_op.render_template_fields(context, jinja_env=context['dag'].get_template_env())
источник

ME

Max Efremov in Airflow
А как из питон операторы вызвать другой оператор?
источник

ME

Max Efremov in Airflow
запустить у него run?
источник

E

Edya in Airflow
Vova Narovchatskiy
Всем доброго дня!

Есть вопрос по шаблонам jinja. Использую их в EmailOperator-e. В письме шаблоны не подставляют значения

html_content="Templated Content: date: {{ds}} task_key - {{ task_instance_key_str }} test_mode - {{ test_mode }} task_owner - {{ task.owner}} hostname - {{ ti.hostname }}",
у меня нормально работает
send_email = EmailOperator(
   task_id='send_email',
   to=email_list,
   subject='DAG report {{tomorrow_ds}}',
   html_content="""{{ '<br>'.join(task_instance.xcom_pull(task_ids='some_task_id')) }}""",
   dag=dag
)
источник

E

Edya in Airflow
что-то видимо не так делаете
источник

VN

Vova Narovchatskiy in Airflow
Хм возможно
А как логи стянуть и отправить прикрепленным файлом лучше - вытянуть из директории  logs или из самой бд метаданных?
источник

DM

Dan M. in Airflow
Max Efremov
А как из питон операторы вызвать другой оператор?
В питон операторе можно вызвать SomeHook.run, или если это email, из utils достать send_email.
источник