'Adds a job store to this scheduler. Any extra keyword arguments will be passed to the job store plugin\'s
constructor, assuming that the first argument is the name of a job store plugin.
:param str|unicode|apscheduler.jobstores.base.BaseJobStore jobstore: job store to be added
:param str|unicode alias: alias for the job store
:raises ValueError: if there is already a job store by the given alias'

def add_jobstore(self, jobstore, alias='default', **jobstore_opts):

    with self._jobstores_lock:
        if (alias in self._jobstores):
            raise ValueError(('This    scheduler    already    has    a    job    store    by    the    alias    of    "%s"' % alias))
        if isinstance(jobstore, BaseJobStore):
            self._jobstores[alias] = jobstore
        elif isinstance(jobstore, six.string_types):
            self._jobstores[alias] = jobstore = self._create_plugin_instance('jobstore', jobstore, jobstore_opts)
        else:
            raise TypeError(('Expected    a    job    store    instance    or    a    string,    got    %s    instead' % jobstore.__class__.__name__))
        if self.running:
            jobstore.start(self, alias)
    self._dispatch_event(SchedulerEvent(EVENT_JOBSTORE_ADDED, alias))
    if self.running:
        self.wakeup()
