2017-07-12 3 views
5

Je me suis retrouvé dans une situation où je déclenche manuellement une exécution de DAG Run (via airflow trigger_dag datablocks_dag), et le Dag Run apparaît dans l'interface, mais il reste alors "Running" pour toujours sans rien faire.Airflow DAG Exécuté déclenché, mais jamais exécuté?

Quand j'inspectez le DAG Exécuter dans l'interface utilisateur, je vois ce qui suit:

enter image description here

J'ai start_date ensemble à datetime(2016, 1, 1) et schedule_interval ensemble à @once. Mon compréhension de la lecture des docs est que depuis start_date < maintenant, le DAG sera déclenché. Le @once s'assure que cela n'arrive qu'une seule fois.

Mon fichier journal dit:

[2017-07-11 21:32:05,359] {jobs.py:343} DagFileProcessor0 INFO - Started process (PID=21217) to work on /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py 
[2017-07-11 21:32:05,359] {jobs.py:534} DagFileProcessor0 ERROR - Cannot use more than 1 thread when using sqlite. Setting max_threads to 1 
[2017-07-11 21:32:05,365] {jobs.py:1525} DagFileProcessor0 INFO - Processing file /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py for tasks to queue 
[2017-07-11 21:32:05,365] {models.py:176} DagFileProcessor0 INFO - Filling up the DagBag from /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py 
[2017-07-11 21:32:05,703] {models.py:2048} DagFileProcessor0 WARNING - schedule_interval is used for <Task(BashOperator): foo>, though it has been deprecated as a task parameter, you need to specify it as a DAG parameter instead 
[2017-07-11 21:32:05,703] {models.py:2048} DagFileProcessor0 WARNING - schedule_interval is used for <Task(BashOperator): foo2>, though it has been deprecated as a task parameter, you need to specify it as a DAG parameter instead 
[2017-07-11 21:32:05,704] {jobs.py:1539} DagFileProcessor0 INFO - DAG(s) dict_keys(['example_branch_dop_operator_v3', 'latest_only', 'tutorial', 'example_http_operator', 'example_python_operator', 'example_bash_operator', 'example_branch_operator', 'example_trigger_target_dag', 'example_short_circuit_operator', 'example_passing_params_via_test_command', 'test_utils', 'example_subdag_operator', 'example_subdag_operator.section-1', 'example_subdag_operator.section-2', 'example_skip_dag', 'example_xcom', 'example_trigger_controller_dag', 'latest_only_with_trigger', 'datablocks_dag']) retrieved from /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py 
[2017-07-11 21:32:07,083] {models.py:3529} DagFileProcessor0 INFO - Creating ORM DAG for datablocks_dag 
[2017-07-11 21:32:07,234] {models.py:331} DagFileProcessor0 INFO - Finding 'running' jobs without a recent heartbeat 
[2017-07-11 21:32:07,234] {models.py:337} DagFileProcessor0 INFO - Failing jobs without heartbeat after 2017-07-11 21:27:07.234388 
[2017-07-11 21:32:07,240] {jobs.py:351} DagFileProcessor0 INFO - Processing /home/alex/Desktop/datablocks/tests/.airflow/dags/datablocks_dag.py took 1.881 seconds 

ce qui pourrait être l'origine du problème?

Suis-je en train de mal comprendre comment fonctionne start_date?

Ou sont les lignes de schedule_interval inquiétantes apparentes dans le fichier journal peut-être la source du problème?

Répondre

3

Le problème est que le dag est en pause.

Dans la capture d'écran que vous avez fournie, dans le coin supérieur gauche, passez à On et cela devrait le faire.

Ceci est un "gotcha" commun lorsque vous démarrez avec un flux d'air.

+0

Hmm. Je cours 'airflow unpause datablocks_dag', suivi de' airflow trigger_dag datablocks_dag'. Est-ce que je les cours dans le mauvais ordre, peut-être? –

+0

Cela devrait fonctionner correctement en théorie. Cependant, dans l'interface utilisateur, nous pouvons voir que le dag est toujours en pause. Je ne sais pas pourquoi ... Le faire manuellement devrait fonctionner. – jhnclvr

+1

Je suis allé de l'avant et inversé l'ordre des appels, et il fonctionne maintenant comme prévu. –