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