Browse Source

Update library: APScheduler

pull/2742/merge
Ruud 11 years ago
parent
commit
04539edb45
  1. 2
      libs/apscheduler/__init__.py
  2. 14
      libs/apscheduler/jobstores/shelve_store.py
  3. 10
      libs/apscheduler/scheduler.py

2
libs/apscheduler/__init__.py

@ -1,3 +1,3 @@
version_info = (2, 1, 1)
version_info = (2, 1, 2)
version = '.'.join(str(n) for n in version_info[:3])
release = '.'.join(str(n) for n in version_info)

14
libs/apscheduler/jobstores/shelve_store.py

@ -21,7 +21,10 @@ class ShelveJobStore(JobStore):
self.jobs = []
self.path = path
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):
id = None
@ -33,7 +36,8 @@ class ShelveJobStore(JobStore):
def add_job(self, job):
job.id = self._generate_id()
self.store[job.id] = job.__getstate__()
self.store.sync()
self.store.close()
self._open_store()
self.jobs.append(job)
def update_job(self, job):
@ -41,11 +45,13 @@ class ShelveJobStore(JobStore):
job_dict['next_run_time'] = job.next_run_time
job_dict['runs'] = job.runs
self.store[job.id] = job_dict
self.store.sync()
self.store.close()
self._open_store()
def remove_job(self, job):
del self.store[job.id]
self.store.sync()
self.store.close()
self._open_store()
self.jobs.remove(job)
def load_jobs(self):

10
libs/apscheduler/scheduler.py

@ -586,7 +586,10 @@ class Scheduler(object):
wait_seconds = time_difference(next_wakeup_time, now)
logger.debug('Next wakeup is due at %s (in %f 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()
elif self.standalone:
logger.debug('No jobs left; shutting down scheduler')
@ -594,7 +597,10 @@ class Scheduler(object):
break
else:
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()
logger.info('Scheduler has been shut down')

Loading…
Cancel
Save