Update library: APScheduler
This commit is contained in:
1 parent
5cf21452c1
commit
04539edb45
3 files changed
+19
-7
No files matched your search
@@ -1,3 +1,3 @@
|
|||||||
version_info = (2, 1, 1)
|
version_info = (2, 1, 2)
|
||||||
version = '.'.join(str(n) for n in version_info[:3])
|
version = '.'.join(str(n) for n in version_info[:3])
|
||||||
release = '.'.join(str(n) for n in version_info)
|
release = '.'.join(str(n) for n in version_info)
|
||||||
@@ -21,7 +21,10 @@ class ShelveJobStore(JobStore):
|
|||||||
self.jobs = []
|
self.jobs = []
|
||||||
self.path = path
|
self.path = path
|
||||||
self.pickle_protocol = pickle_protocol
|
self.pickle_protocol = pickle_protocol
|
||||||
self.store = shelve.open(path, 'c', self.pickle_protocol)
|
self._open_store()
|
||||||
|
|
||||||
|
def _open_store(self):
|
||||||
|
self.store = shelve.open(self.path, 'c', self.pickle_protocol)
|
||||||
|
|
||||||
def _generate_id(self):
|
def _generate_id(self):
|
||||||
id = None
|
id = None
|
||||||
@@ -33,7 +36,8 @@ class ShelveJobStore(JobStore):
|
|||||||
def add_job(self, job):
|
def add_job(self, job):
|
||||||
job.id = self._generate_id()
|
job.id = self._generate_id()
|
||||||
self.store[job.id] = job.__getstate__()
|
self.store[job.id] = job.__getstate__()
|
||||||
self.store.sync()
|
self.store.close()
|
||||||
|
self._open_store()
|
||||||
self.jobs.append(job)
|
self.jobs.append(job)
|
||||||
|
|
||||||
def update_job(self, job):
|
def update_job(self, job):
|
||||||
@@ -41,11 +45,13 @@ class ShelveJobStore(JobStore):
|
|||||||
job_dict['next_run_time'] = job.next_run_time
|
job_dict['next_run_time'] = job.next_run_time
|
||||||
job_dict['runs'] = job.runs
|
job_dict['runs'] = job.runs
|
||||||
self.store[job.id] = job_dict
|
self.store[job.id] = job_dict
|
||||||
self.store.sync()
|
self.store.close()
|
||||||
|
self._open_store()
|
||||||
|
|
||||||
def remove_job(self, job):
|
def remove_job(self, job):
|
||||||
del self.store[job.id]
|
del self.store[job.id]
|
||||||
self.store.sync()
|
self.store.close()
|
||||||
|
self._open_store()
|
||||||
self.jobs.remove(job)
|
self.jobs.remove(job)
|
||||||
|
|
||||||
def load_jobs(self):
|
def load_jobs(self):
|
||||||
|
|||||||
@@ -586,7 +586,10 @@ class Scheduler(object):
|
|||||||
wait_seconds = time_difference(next_wakeup_time, now)
|
wait_seconds = time_difference(next_wakeup_time, now)
|
||||||
logger.debug('Next wakeup is due at %s (in %f seconds)',
|
logger.debug('Next wakeup is due at %s (in %f seconds)',
|
||||||
next_wakeup_time, wait_seconds)
|
next_wakeup_time, wait_seconds)
|
||||||
self._wakeup.wait(wait_seconds)
|
try:
|
||||||
|
self._wakeup.wait(wait_seconds)
|
||||||
|
except IOError: # Catch errno 514 on some Linux kernels
|
||||||
|
pass
|
||||||
self._wakeup.clear()
|
self._wakeup.clear()
|
||||||
elif self.standalone:
|
elif self.standalone:
|
||||||
logger.debug('No jobs left; shutting down scheduler')
|
logger.debug('No jobs left; shutting down scheduler')
|
||||||
@@ -594,7 +597,10 @@ class Scheduler(object):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
logger.debug('No jobs; waiting until a job is added')
|
logger.debug('No jobs; waiting until a job is added')
|
||||||
self._wakeup.wait()
|
try:
|
||||||
|
self._wakeup.wait()
|
||||||
|
except IOError: # Catch errno 514 on some Linux kernels
|
||||||
|
pass
|
||||||
self._wakeup.clear()
|
self._wakeup.clear()
|
||||||
|
|
||||||
logger.info('Scheduler has been shut down')
|
logger.info('Scheduler has been shut down')
|
||||||
|
|||||||
Reference in new issue
Block a user