Тайм-аут S3KeySensor воздушного потока другому оператору

#amazon-s3 #airflow #directed-acyclic-graphs

#amazon-s3 #воздушный поток #направленные ациклические графики

Вопрос:

У меня есть случай использования, когда, если время ожидания S3KeySensor истекло, я хочу запустить другой оператор шага воздушного потока и продолжить выполнение DAG. В настоящее время возникает ошибка AirflowSensorTimeout(‘Привязка. Время ИСТЕКЛО.’). Есть ли какой-либо способ реализовать это?

 scan_results_sensor = S3KeySensor(
        task_id="key_sensor",
        bucket_key=key,
        wildcard_match=True,
        bucket_name=bucket,
        aws_conn_id='aws_default',
        timeout=120,
        poke_interval=30,
        soft_fail=True
    )
 

Комментарии:

1. конкретно только по таймауту? Где другой оператор (тот же dag? другое?) Пожалуйста, добавьте более подробную информацию о варианте использования. Добавьте образцы вашего текущего кода

2. Да, только тайм-аут. Это должно вызвать другого оператора из dag.

Ответ №1:

Возможным решением является установка trigger_rule="all_failed" или trigger_rule="one_failed" (в зависимости от ваших зависимостей от оператора). Тем не менее, вы предоставляете soft_fail=True , он устанавливает состояние оператора skipped на сбой. Итак, его также следует удалить.

https://airflow.apache.org/docs/apache-airflow/stable/concepts.html#trigger-rules