diff options
author | agronholm <devnull@localhost> | 2011-04-12 05:14:34 +0300 |
---|---|---|
committer | agronholm <devnull@localhost> | 2011-04-12 05:14:34 +0300 |
commit | e7925538748e97d64ddf2182cfb5414e53eecbc2 (patch) | |
tree | daea6c6c7d6c01298e24ea80cac2b380751c08e5 /apscheduler/job.py | |
parent | 28676b1adddb31f379d0e18a9c4842a69d8df709 (diff) | |
download | apscheduler-e7925538748e97d64ddf2182cfb5414e53eecbc2.tar.gz |
Modified Job.add_instance to raise an exception when attempting to exceed max_instances and made the scheduler act accordingly if this happens
Diffstat (limited to 'apscheduler/job.py')
-rw-r--r-- | apscheduler/job.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/apscheduler/job.py b/apscheduler/job.py index a3998c2..868e723 100644 --- a/apscheduler/job.py +++ b/apscheduler/job.py @@ -9,6 +9,10 @@ from apscheduler.util import to_unicode, ref_to_obj, get_callable_name,\ obj_to_ref +class MaxInstancesReachedError(Exception): + pass + + class Job(object): """ Encapsulates the actual Job along with its metadata. Job instances @@ -87,8 +91,12 @@ class Job(object): def add_instance(self): self._lock.acquire() - self.instances += 1 - self._lock.release() + try: + if self.instances == self.max_instances: + raise MaxInstancesReachedError + self.instances += 1 + finally: + self._lock.release() def remove_instance(self): self._lock.acquire() |