Airflow unpause dag programmatically?

后端 未结 4 820
醉话见心
醉话见心 2020-12-16 18:26

I have a dag that we\'ll deploy to multiple different airflow instances and in our airflow.cfg we have dags_are_paused_at_creation = True but for this specific

相关标签:
4条回答
  • 2020-12-16 18:52

    supply your dag_id and run this command on your command line.

    airflow pause dag_id.
    

    For more information on the airflow command line interface: https://airflow.incubator.apache.org/cli.html

    0 讨论(0)
  • 2020-12-16 18:54

    I created the following function to do so if anyone else runs into this issue:

    import airflow.settings
    from airflow.models import DagModel
    def unpause_dag(dag):
        """
        A way to programatically unpause a DAG.
        :param dag: DAG object
        :return: dag.is_paused is now False
        """
        session = airflow.settings.Session()
        try:
            qry = session.query(DagModel).filter(DagModel.dag_id == dag.dag_id)
            d = qry.first()
            d.is_paused = False
            session.commit()
        except:
            session.rollback()
        finally:
            session.close()
    
    0 讨论(0)
  • 2020-12-16 18:56

    airflow-rest-api-plugin plugin can also be used to programmatically pause tasks.

    Pauses a DAG

    Available in Airflow Version: 1.7.0 or greater

    GET - http://{HOST}:{PORT}/admin/rest_api/api?api=pause

    Query Arguments:

    dag_id - string - The id of the dag

    subdir (optional) - string - File location or directory from which to look for the dag

    Examples:

    http://{HOST}:{PORT}/admin/rest_api/api?api=pause&dag_id=test_id

    See for more details: https://github.com/teamclairvoyant/airflow-rest-api-plugin

    0 讨论(0)
  • 2020-12-16 18:59

    I think you are looking for unpause ( not pause)

    airflow unpause DAG_ID
    
    0 讨论(0)
提交回复
热议问题