Засыпка воздушного потока прекращается в случае сбоя любой задачи - PullRequest
0 голосов
/ 20 сентября 2018

Я использую команду airflow cli backfill для ручного запуска некоторых заданий обратной засыпки.

 airflow backfill mydag -i -s 2018-01-11T16-00-00 -e 2018-01-31T23-00-00 --reset_dagruns --rerun_failed_tasks

Даг интервал почасовой и имеет около 40 задач.Следовательно, этот вид обратной засыпки занимает больше одного дня.Мне нужно, чтобы он работал без присмотра.Однако я заметил, что даже если одна из задач завершается с ошибкой при одном из запусков в интервале обратной засыпки, все задание обратной засыпки останавливается со следующим исключением, и мне приходится перезапускать его вручную снова.

    Traceback (most recent call last):
      File "/home/ubuntu/airflow/bin/airflow", line 4, in <module>
        __import__('pkg_resources').run_script('apache-airflow==1.10.0', 'airflow')
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/pkg_resources/__init__.py"
    , line 719, in run_script
        self.require(requires)[0].run_script(script_name, ns)
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1504, in run_script
        exec(code, namespace, namespace)
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.
    5.egg/EGG-INFO/scripts/airflow", line 32, in <module>
        args.func(args)
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.5.egg/airflow/utils/cli.py", line 74, in wrapper
        return f(*args, **kwargs)
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.
    5.egg/airflow/bin/cli.py", line 217, in backfill
        rerun_failed_tasks=args.rerun_failed_tasks,
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.5.egg/airflow/models.py", line 4105, in run
        job.run()
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.
    5.egg/airflow/jobs.py", line 202, in run
        self._execute()
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.5.egg/airflow/utils/db.py", line 74, in wrapper
        return func(*args, **kwargs)
      File "/home/ubuntu/airflow/lib/python3.5/site-packages/apache_airflow-1.10.0-py3.
    5.egg/airflow/jobs.py", line 2533, in _execute


 airflow.exceptions.AirflowException: 

Some task instances failed:
{('mydag', 'a_task', datetime.datetime(2018, 1, 30, 17, 5, tzinfo=psy
copg2.tz.FixedOffsetTimezone(offset=0, name=None)))}

Экземпляры задач не зависят от своих предыдущих экземпляров, поэтому я не против, если одна или две задачи завершатся неудачно.Мне нужна работа, чтобы продолжить.

Я не смог найти ни одной опции в документации обратной засыпки , которая позволила бы мне указать это поведение.

Есть ли способ достичь того, что я ищу?

Ответы [ 3 ]

0 голосов
/ 06 октября 2018

Добавление --donot_pickle к команде backfill может помочь .

0 голосов
/ 27 мая 2019

Испытывает ту же проблему с командой засыпки.

Попробовал опцию --donot_pickle, а для параметра variable_on_past установлено значение False без успеха.

Возможное решение: Установите дату начала и значение = True для группы доступности базы данных и отмените ее приостановку в веб-интерфейсе.Это работало как засыпка.

Не удалось получить команду CLI backfill для продолжения работы, если более 1 прогона DAG была помечена как неудачная.

0 голосов
/ 22 сентября 2018

Если я правильно понимаю вашу проблему, нужного вам поведения можно добиться, установив

'depends_on_past': False

среди аргументов DAG.

Источник: https://airflow.incubator.apache.org/tutorial.html#backfill

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...