'Runs the DAG.
:param start_date: the start date of the range to run
:type start_date: datetime
:param end_date: the end date of the range to run
:type end_date: datetime
:param mark_success: True to mark jobs as succeeded without running them
:type mark_success: bool
:param include_adhoc: True to include dags with the adhoc parameter
:type include_adhoc: bool
:param local: True to run the tasks using the LocalExecutor
:type local: bool
:param executor: The executor instance to run the tasks
:type executor: BaseExecutor
:param donot_pickle: True to avoid pickling DAG object and send to workers
:type donot_pickle: bool
:param ignore_task_deps: True to skip upstream tasks
:type ignore_task_deps: bool
:param ignore_first_depends_on_past: True to ignore depends_on_past
dependencies for the first set of tasks only
:type ignore_first_depends_on_past: bool
:param pool: Resource pool to use
:type pool: string
:param delay_on_limit_secs: Time in seconds to wait before next attempt to run
dag run when max_active_runs limit has been reached
:type delay_on_limit_secs: float'

def run(self, start_date=None, end_date=None, mark_success=False, include_adhoc=False, local=False, executor=None, donot_pickle=configuration.getboolean(u'core', u'donot_pickle'), ignore_task_deps=False, ignore_first_depends_on_past=False, pool=None, delay_on_limit_secs=1.0):

    from airflow.jobs import BackfillJob
    if ((not executor) and local):
        executor = LocalExecutor()
    elif (not executor):
        executor = GetDefaultExecutor()
    job = BackfillJob(self, start_date=start_date, end_date=end_date, mark_success=mark_success, include_adhoc=include_adhoc, executor=executor, donot_pickle=donot_pickle, ignore_task_deps=ignore_task_deps, ignore_first_depends_on_past=ignore_first_depends_on_past, pool=pool, delay_on_limit_secs=delay_on_limit_secs)
    job.run()
