Мне нужен совет о том, как перезапустить все службы воздушного потока при развертывании, не убивая рабочих в середине задачи.Процедура развертывания для новых пропусков
Я написал процедуру развертывания для своих групп DAG, которые устанавливают воздушный поток и любые другие зависимости pip в virtualenv. После того, как мой каталог релиз готов, я:
- остановка воздушного потока цветок, воздушный поток-рабочий, воздушный поток-планировщик, и воздушный поток, веб-сервер
- Update «текущий» SimLink, чтобы указать на мой новый релиз
- Начать воздушный поток, цветок, воздушный поток, планировщик воздушного потока и воздушный поток.
Проблема с этой процедурой развертывания заключается в том, что рабочие немедленно уничтожаются. Я хотел бы добавить какой-то мониторинг к сценарию, чтобы приостановить все группы DAG, дождаться, пока рабочие простаивают, а затем перезапустите службы, но CLI воздушного потока не имеет возможности узнать, какие блокировки включены, и не работают ли рабочие.
Я понимаю, что многие службы воздушного потока могут автоматически обнаруживать изменения в папке dags, но я хочу, чтобы каждое развертывание имело свой собственный virtualenv. Если я не перезапущу все службы, то новое развертывание не заберет новую строку в файле requirements.txt.
Я схожу с такой же проблемой, вы нашли способ или вам пришлось реализовать все упомянутое в принятом ответе? – s7anley
Я действительно заметил, что работники изящно уйдут с SIGINT. Я обновил свой сценарий systemctl соответственно –