Одна задача на вызов убивает Airflow, так как ему все равно нужно проверять состояние каждой задачи на каждом такте - даже если обработка задачи (рабочего) выполняется отдельно, например, на K8.
Не уверен если вы планируете запускать Airflow, но если загрузка через GCP и загрузка занимает не более 9 минут, вы можете использовать следующее:
task (PythonOperator) -> pubsub -> cloud function (to retrieve) -> pubsub -> function (to save result to backend).
Последняя функция может не потребоваться, но мы (повторно) используйте обобщенный c и простой «bigquery streamer».
Наконец, вы запрашиваете в последующей задаче AF (PythonSensor) количество результатов в бэкэнде и сравниваете с количеством опубликованных запросов.
Мы делаем это достаточно эффективно для вызовов 100K API сторонней системе, которую мы размещаем на GCP, поскольку мы максимизируем параллелизм. Приятной особенностью GCF является то, что вы можете настроить архитектуру для использования и параллелизма вместо предоставления виртуальной машины или контейнера для выполнения задач.