':param dag_id: if specified, only schedule tasks with this DAG ID
:type dag_id: unicode
:param dag_ids: if specified, only schedule tasks with these DAG IDs
:type dag_ids: list[unicode]
:param subdir: directory containing Python files with Airflow DAG
definitions, or a specific path to a file
:type subdir: unicode
:param num_runs: The number of times to try to schedule each DAG file.
-1 for unlimited within the run_duration.
:param processor_poll_interval: The number of seconds to wait between
polls of running processors
:param run_duration: how long to run (in seconds) before exiting
:type run_duration: int
:param do_pickle: once a DAG object is obtained by executing the Python
file, whether to serialize the DAG object to the DB
:type do_pickle: bool'

def __init__(self, dag_id=None, dag_ids=None, subdir=settings.DAGS_FOLDER, num_runs=(-1), file_process_interval=conf.getint(u'scheduler', u'min_file_process_interval'), processor_poll_interval=1.0, run_duration=None, do_pickle=False, *args, **kwargs):

    self.dag_id = dag_id
    self.dag_ids = ([dag_id] if dag_id else [])
    if dag_ids:
        self.dag_ids.extend(dag_ids)
    self.subdir = subdir
    self.num_runs = num_runs
    self.run_duration = run_duration
    self._processor_poll_interval = processor_poll_interval
    self.do_pickle = do_pickle
    super(SchedulerJob, self).__init__(*args, **kwargs)
    self.heartrate = conf.getint(u'scheduler', u'SCHEDULER_HEARTBEAT_SEC')
    self.max_threads = conf.getint(u'scheduler', u'max_threads')
    self.using_sqlite = False
    if (u'sqlite' in conf.get(u'core', u'sql_alchemy_conn')):
        if (self.max_threads > 1):
            self.logger.error(u'Cannot    use    more    than    1    thread    when    using    sqlite.    Setting    max_threads    to    1')
        self.max_threads = 1
        self.using_sqlite = True
    self.dag_dir_list_interval = conf.getint(u'scheduler', u'dag_dir_list_interval')
    self.print_stats_interval = conf.getint(u'scheduler', u'print_stats_interval')
    self.file_process_interval = file_process_interval
    self.child_process_log_directory = conf.get(u'scheduler', u'child_process_log_directory')
    self.max_tis_per_query = conf.getint(u'scheduler', u'max_tis_per_query')
    if (run_duration is None):
        self.run_duration = conf.getint(u'scheduler', u'run_duration')
