Каждый процесс выполняет то, для чего он создан, во время работы (веб-сервер предоставляет пользовательский интерфейс, планировщик определяет, когда нужно что-то запускать, и рабочие фактически запускают задачи).
Я думаю, что вы путаетесь в том, что вы можете видеть их как команды, которые говорят что-то вроде "службы Airflow", чтобы сделать что-то, но каждая из них является отдельной командой, которая запускает процессы для выполнения каких-либо задач. то есть. Начиная с нуля, вы запускаете airflow scheduler
: теперь у вас работает планировщик. Запустите airflow webserver
: теперь у вас запущен веб-сервер. Когда вы запускаете airflow webserver
, он запускает приложение с флягой Python. Пока этот процесс запущен, веб-сервер, если вы убьете команду, отключится.
Все три должны работать для воздушного потока в целом (при условии, что вы используете исполнителя, которому нужны рабочие). У вас должен быть только один запущенный планировщик, но если вы будете запускать два процесса airflow webserver
(игнорируя конфликты портов, у вас будет два запущенных http-сервера, использующих одну и ту же базу данных метаданных. Рабочие могут немного отличаться в том, что вы можете чтобы работало несколько рабочих процессов, чтобы вы могли выполнять больше задач одновременно.Таким образом, если вы создадите несколько процессов airflow worker
, вы получите множество процессов, получающих задания из очереди, выполняющих их и обновляющих экземпляр задачи со статусом задание.
Когда вы запустите любую из этих команд, вы увидите вывод stdout и stderr в консоли. Если вы запускаете их как демон или фоновый процесс, вы можете проверить, какие процессы выполняются на сервере.
Если вы нажмете Ctrl + C, вы отправите сигнал о прекращении процесса. В идеале для производственного кластера воздушного потока у вас должен быть какой-то руководитель, который следит за процессами и гарантирует, что они всегда работают. Локально вы можете запускать команды на переднем плане отдельных оболочек, сводить их к минимуму и просто сохранять их работающими, когда они вам нужны. Или запустите их как фоновый демон с аргументом -D
. т.е. airflow webserver -D
.