parent
e1d314cc83
commit
607b7b6718
@ -1,44 +0,0 @@
|
||||
import six
|
||||
from apscheduler.job import Job
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from apscheduler.schedulers.base import STATE_STOPPED
|
||||
from apscheduler.util import undefined
|
||||
|
||||
|
||||
class RedJob(Job):
|
||||
pass
|
||||
|
||||
|
||||
class RedAsyncIOScheduler(AsyncIOScheduler):
|
||||
|
||||
def add_job(self, func, trigger=None, args=None, kwargs=None, id=None, name=None,
|
||||
misfire_grace_time=undefined, coalesce=undefined, max_instances=undefined,
|
||||
next_run_time=undefined, jobstore='default', executor='default',
|
||||
replace_existing=False, **trigger_args):
|
||||
job_kwargs = {
|
||||
'trigger': self._create_trigger(trigger, trigger_args),
|
||||
'executor': executor,
|
||||
'func': func,
|
||||
'args': tuple(args) if args is not None else (),
|
||||
'kwargs': dict(kwargs) if kwargs is not None else {},
|
||||
'id': id,
|
||||
'name': name,
|
||||
'misfire_grace_time': misfire_grace_time,
|
||||
'coalesce': coalesce,
|
||||
'max_instances': max_instances,
|
||||
'next_run_time': next_run_time
|
||||
}
|
||||
job_kwargs = dict((key, value) for key, value in six.iteritems(job_kwargs) if
|
||||
value is not undefined)
|
||||
job = RedJob(self, **job_kwargs)
|
||||
|
||||
# Don't really add jobs to job stores before the scheduler is up and running
|
||||
with self._jobstores_lock:
|
||||
if self.state == STATE_STOPPED:
|
||||
self._pending_jobs.append((job, jobstore, replace_existing))
|
||||
self._logger.info('Adding job tentatively -- it will be properly scheduled when '
|
||||
'the scheduler starts')
|
||||
else:
|
||||
self._real_add_job(job, jobstore, replace_existing)
|
||||
|
||||
return job
|
Loading…
Reference in new issue