O Airflow Worker Daemon sai sem motivo visível

0

Eu tenho o Airflow 1.9 rodando dentro de um ambiente virtual, configurado com Celery e Redis e ele funciona bem. No entanto, eu queria daemonizar a configuração e usar as instruções aqui . Ele funciona bem para o servidor Web, o Scheduler e o Flower, mas falha para o Worker, que é, obviamente, o núcleo de tudo. Meu arquivo airflow-worker.service é assim:

[Unit]
Description=Airflow celery worker daemon
After=network.target postgresql.service mysql.service redis.service rabbitmq-server.service
Wants=postgresql.service mysql.service redis.service rabbitmq-server.service

[Service]
EnvironmentFile=/etc/default/airflow
User=root
Group=root
Type=simple
ExecStart=/bin/bash -c 'source /home/codingincircles/airflow-master/bin/activate ; airflow worker'
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Curiosamente, se eu executar o comando ExecStart na CLI, ele é executado perfeitamente e as tarefas são executadas e tudo é glorioso. No entanto, quando eu faço um sudo service airflow-worker start , demora um pouco para retornar ao prompt e nada aparece na interface do usuário de flores. Quando eu faço journalctl -u airflow-worker.service -e , isto é o que eu vejo:

systemd[1]: Started Airflow celery worker daemon.
bash[12392]: [2018-04-09 21:52:41,202] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python3.5/lib2to3/Grammar.txt
bash[12392]: [2018-04-09 21:52:41,252] {driver.py:120} INFO - Generating grammar tables from /usr/lib/python3.5/lib2to3/PatternGrammar.txt
bash[12392]: [2018-04-09 21:52:41,578] {configuration.py:206} WARNING - section/key [celery/celery_ssl_active] not found in config
bash[12392]: [2018-04-09 21:52:41,578] {default_celery.py:41} WARNING - Celery Executor will run without SSL
bash[12392]: [2018-04-09 21:52:41,579] {__init__.py:45} INFO - Using executor CeleryExecutor
systemd[1]: airflow-worker.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: airflow-worker.service: Unit entered failed state.
systemd[1]: airflow-worker.service: Failed with result 'exit-code'.

O que estou fazendo de errado? Qualquer outro método de usar o Airflow funciona, exceto quando tento daemonizar isso. Mesmo usando o -D flag após os comandos airflow funcionar (como airflow worker -D ), exceto que não tenho certeza se essa é a maneira certa / segura / recomendada de usá-lo na produção e prefiro torná-lo um serviço e use-o. Por favor ajude.

    
por CodingInCircles 10.04.2018 / 16:58

0 respostas