Apache Airflow 2.2: практический курс: New York Yellow Taxi Data Pipeline / Сенсоры
HttpSensor очень похож на SimpleHttpOperator с той лишь разницей, что умеет повторять запросы в случае, если критерий успеха не был удовлетворен. Критерием успеха является HTTP-код ответа. Если сервер вернул статус 200 (включая все 2xx статусы), то цепочка продолжится дальше, а если ответ был 404, то запрос повторится через заданный интервал. Также можно передать callable-объект в аргумент response_check
, чтобы провести дополнительную проверку и задать свой критерий успеха.
from airflow.providers.http.sensors.http import HttpSensor
check_if_exists = HttpSensor(
method='HEAD',
endpoint='yellow_tripdata_{{ execution_date.strftime("%Y-%m") }}.csv',
http_conn_id='nyc_yellow_taxi_id',
task_id='check_if_exists',
poke_interval=60 * 60, # каждый час
mode='poke',
)
Помимо знакомых уже параметров method
, endpoint
, http_conn_id
, обратите внимание на два новых:
poke_interval
— интервал ожидания между повторными проверками в секундахmode
— режим проверок, по умолчанию равен poke
.