'Iterates over the dags and processes them. Processing includes:
1. Create appropriate DagRun(s) in the DB.
2. Create appropriate TaskInstance(s) in the DB.
3. Send emails for tasks that have missed SLAs.
:param dagbag: a collection of DAGs to process
:type dagbag: models.DagBag
:param dags: the DAGs from the DagBag to process
:type dags: DAG
:param tis_out: A queue to add generated TaskInstance objects
:type tis_out: multiprocessing.Queue[TaskInstance]
:return: None'

def _process_dags(self, dagbag, dags, tis_out):

    for dag in dags:
        dag = dagbag.get_dag(dag.dag_id)
        if dag.is_paused:
            self.logger.info(u"Not    processing    DAG    {}    since    it's    paused".format(dag.dag_id))
            continue
        if (not dag):
            self.logger.error(u'DAG    ID    {}    was    not    found    in    the    DagBag'.format(dag.dag_id))
            continue
        self.logger.info(u'Processing    {}'.format(dag.dag_id))
        dag_run = self.create_dag_run(dag)
        if dag_run:
            self.logger.info(u'Created    {}'.format(dag_run))
        self._process_task_instances(dag, tis_out)
        self.manage_slas(dag)
    models.DagStat.update([d.dag_id for d in dags])
