Skip to content

Commit

Permalink
Fix Job#release and Job#bury when missing YAML
Browse files Browse the repository at this point in the history
NOTE: Without parsing a Job's stats, we can not automatically preserve
the Job's priority in `release`/`bury`. Unless `release`/`bury` are
passed a priority to use, the Job priority will therefore be reset to
`DEFAULT_PRIORITY`.
  • Loading branch information
earl committed Feb 5, 2010
1 parent d970f04 commit 29e7a16
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions beanstalkc.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,12 @@ def __init__(self, conn, jid, body, reserved=True):
self.body = body
self.reserved = reserved

def _priority(self):
stats = self.stats()
if isinstance(stats, dict):
return stats['pri']
return DEFAULT_PRIORITY

# -- public interface --

def delete(self):
Expand All @@ -225,12 +231,12 @@ def delete(self):

def release(self, priority=None, delay=0):
if self.reserved:
self.conn.release(self.jid, priority or self.stats()['pri'], delay)
self.conn.release(self.jid, priority or self._priority(), delay)
self.reserved = False

def bury(self, priority=None):
if self.reserved:
self.conn.bury(self.jid, priority or self.stats()['pri'])
self.conn.bury(self.jid, priority or self._priority())
self.reserved = False

def touch(self):
Expand Down

0 comments on commit 29e7a16

Please sign in to comment.