Перезапуск Apache Воздушный поток под управлением супервизора - PullRequest
0 голосов
/ 13 июля 2020

Обзор

Я обновил 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

1 Ответ

0 голосов
/ 17 августа 2020

После того, как я разместил вопрос об Airflow's Slack. Я получил ответ, что мне не нужно перезапускать службы. Airflow прочитает новые файлы python DAG и обновит sh информацию в пользовательском интерфейсе. Итак, ответьте * Мне не нужно перезапускать службы

...