4
respostas

Como encerrar o Airflow para desligfar o PC?

Assisti às aulas durante mais de um dia, então desliguei o PC nesse meio tempo. Assim, eu apenas fechei o prompt de comando e desliguei a VM, mas sei que isso não está correto. Qual o jeito correto de encerrar o Airflow? Nesse mesmo sentido, na aula 4, parte 9, nós editamos um DAG que estava rodando, mas depois de salvar as alterações, o Airflow não executou o DAG de acordo com as novas instruções. Seria preciso reiniciar o Airflow? Como?

4 respostas

Oii, Gx! Tudo bem?

Agradeço por aguardar o nosso retorno.

  • Para fechar, é preciso interromper a execução dos DAGs que estão ativo. Para isso, execute o comando:
airflow stop
  • Próximo passo é finalizar todos os processos o Airflow, com o comando:
airflow info stop

Sobre editar um DAG em execução, isso ocorre porque o Airflow carrega todos os DAGs em memória apenas uma vez, quando o serviço é iniciado. Então é preciso reiniciar o Airflow para que as novas atualizações sejam aplicadas. E com o comando abaixo é possível reiniciar:

airflow info start

Ressalto que é importante parar e finalizar os processos antes de reiniciar.

Caso queira se aprofundar nos estudos sobre o Airflow, indico a leitura da documentação, ela é uma ótima aliada durante os estudos:

Espero ter ajudado. Qualquer dúvida, conte conosco.

Bons estudos, Gx!

Obrigado, Nathalia, mas não deu certo... tentei os comandos tanto no terminal em que executei o airflow tanto num novo terminal e nada. O que deu certo para encerrar o Airflow foi o comando "Ctrl + C". Mas qua do fui inicializá-lo de novo, várias mensagens de erro apareceram. Resolvi então apagar minha máquina virtual e começar do zero. Mas agora, com a máquina virtual reinstalada e o arflow também, quando vou rodá-lo pela primeira vez, aparecem os seguintes erros após a mensagem "airflow is ready":

standalone | webserver | [2024-07-23 12:42:54,962] {manager.py:585} INFO - Removed Permission menu access on Permissions to role Admin webserver | [2024-07-23 12:42:54,994] {manager.py:568} INFO - Added Permission menu access on Permissions to role Admin webserver | [2024-07-23 12:42:55,113] {manager.py:587} ERROR - Remove Permission to Role Error: DELETE statement on table 'ab_permission_view_role' expected to delete 1 row(s); Only 0 were matched. webserver | [2024-07-23 12:42:55,124] {manager.py:543} INFO - Removed Permission View: menu_access on Permissions webserver | [2024-07-23 12:42:55,192] {manager.py:508} INFO - Created Permission View: menu access on Permissions webserver | [2024-07-23 12:42:55,258] {manager.py:568} INFO - Added Permission menu access on Permissions to role Admin webserver | [2024-07-23 12:42:55,281] {manager.py:570} ERROR - Add Permission to Role Error: (sqlite3.IntegrityError) UNIQUE constraint failed: ab_permission_view_role.permission_view_id, ab_permission_view_role.role_id webserver | [SQL: INSERT INTO ab_permission_view_role (permission_view_id, role_id) VALUES (?, ?)] webserver | [parameters: (96, 1)] webserver | (Background on this error at: http://sqlalche.me/e/14/gkpj) webserver | [2024-07-23 12:42:55,300] {manager.py:534} WARNING - Refused to delete permission view, assoc with role exists Permissions.menu_access Admin webserver | [2024-07-23 12:42:55,542] {manager.py:570} ERROR - Add Permission to Role Error: (sqlite3.IntegrityError) UNIQUE constraint failed: ab_permission_view_role.permission_view_id, ab_permission_view_role.role_id webserver | [SQL: INSERT INTO ab_permission_view_role (permission_view_id, role_id) VALUES (?, ?)] webserver | [parameters: (96, 1)] webserver | (Background on this error at: http://sqlalche.me/e/14/gkpj) webserver | /home/gabriel/Documents/airflowalura/venv/lib/python3.9/site-packages/airflow/api_connexion/schemas/task_instance_schema.py:63 RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. webserver | /home/gabriel/Documents/airflowalura/venv/lib/python3.9/site-packages/airflow/api_connexion/schemas/task_instance_schema.py:63 RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. webserver | /home/gabriel/Documents/airflowalura/venv/lib/python3.9/site-packages/airflow/api_connexion/schemas/task_instance_schema.py:63 RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. webserver | /home/gabriel/Documents/airflowalura/venv/lib/python3.9/site-packages/airflow/api_connexion/schemas/task_instance_schema.py:63 RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead. triggerer | [2024-07-23 12:44:17,112] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 0.65 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines. triggerer | [2024-07-23 12:44:19,557] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 0.43 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines. triggerer | [2024-07-23 12:44:21,015] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 1.46 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines. triggerer | [2024-07-23 12:44:24,328] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 0.25 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines. triggerer | [2024-07-23 12:44:25,761] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 1.22 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines. triggerer | [2024-07-23 12:44:26,505] {triggerer_job.py:344} ERROR - Triggerer's async thread was blocked for 0.74 seconds, likely by a badly-written trigger. Set PYTHONASYNCIODEBUG=1 to get more information on overrunning coroutines.

E esse tipo de mensagem continua aparecendo... pode me ajudar?

Eu no fim consegui rodar minha DAG sem problemas, mas aparecem diversas mensagens de erro toda vez que executo o Airflow. De toda forma, tenho usado o comando "Ctrl + c" toda vez que vou editar uma DAG ou desligar a máquina vietual. Essa prática está correta?

Oii, Gx! Como você está?

Sinto muito que esteja enfrentando este erro e agradeço por retornar dizendo o que aconteceu.

Geralmente esse erro ocorre devido a problemas de permissões no banco de dados e de versões e não impedem o funcionamento da DAG, como você pôde observar. Então, para reparar os erros, sugiro instalar uma versão mais atualizada do Airflow.

Quanto usar Ctrl+C, não é uma boa prática, nesse caso o ideal é usar os comandos para encerrar os serviços.

  • Para encerrar, tentaremos:
Use airflow webserver --stop
Use airflow scheduler --stop
  • Para inicializar:
airflow webserver
irflow scheduler

Faça os testes e observe se funciona como esperado. Qualquer dúvida, conte conosco.

Bons estudos, Gx!