Step 2 of 5

HttpSensor

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, обратите внимание на два новых:

  1. poke_interval — интервал ожидания между повторными проверками в секундах
  2. mode — режим проверок, по умолчанию равен poke.

Comments