Обзор
Я обновил Apache Воздушный поток с 1.9.0 до 1.10.10. Я управляю процессами / компонентами Airflow через супервизора. У меня есть ansible -playbook, который перезапускает эти процессы каждый раз, когда я развертываю изменения на сервере.
Проблема
Этот скрипт отлично работал с 1.9.5, но после обновления каждый раз когда я обновляю процессы Airflow, кажется, что потеряно состояние задач и DAG. Эти сообщения об ошибках я получу после перезапуска
Exception:
Executor reports task instance finished (failed) although the task says its queued. Was the task killed externally?
Configurations
supervisor conf
[program:airflow-webserver]
command = /home/airflow/airflow-dags/script/airflow-webserver.sh
directory = /home/airflow/
environment=HOME="/home/airflow",USER="airflow",PATH="{{ airflow_python_path }}:{{ airflow_venv_path }}/bin:%(ENV_PATH)s"
user = airflow
stdout_logfile = /var/log/airflow/webserver-logs.log
stderr_logfile = /var/log/airflow/webserver-errors.log
stdout_logfile_backups = 0
redirect_stderr = true
autostart = true
autorestart = true
startretries = 3
stopsignal=QUIT
stopasgroup=true
[program:airflow-scheduler]
command = /home/airflow/airflow-dags/script/airflow-scheduler.sh
directory = /home/airflow/
environment=HOME="/home/airflow",USER="airflow",PATH="{{ airflow_python_path }}:{{ airflow_venv_path }}/bin:%(ENV_PATH)s"
user = airflow
stdout_logfile = /var/log/airflow/scheduler-logs.log
stderr_logfile = /var/log/airflow/scheduler-errors.log
stdout_logfile_backups = 0
redirect_stderr = true
autostart = true
autorestart = true
startretries = 3
stopsignal=QUIT
stopasgroup=true
killasgroup=true
[program:airflow-worker]
command = /home/airflow/airflow-dags/script/airflow-worker.sh
directory = /home/airflow/
environment=HOME="/home/airflow",USER="airflow",PATH="{{ airflow_python_path }}:{{ airflow_venv_path }}/bin:%(ENV_PATH)s"
user = airflow
stdout_logfile = /var/log/airflow/worker-logs.log
stderr_logfile = /var/log/airflow/worker-errors.log
stdout_logfile_backups = 0
redirect_stderr = true
autostart = true
autorestart = true
startretries = 3
stopsignal=QUIT
stopasgroup=true
killasgroup=true
airflow-webserver. sh
#!/bin/bash
export PATH="/home/airflow/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate airflow-1_10
airflow webserver
airflow-workerd. sh
#!/bin/bash
export PATH="/home/airflow/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate airflow-1_10
airflow worker
airflow-scheduler. sh
#!/bin/bash
export PATH="/home/airflow/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate airflow-1_10
airflow scheduler