Skip to content

Commit 7a8167d

Browse files
Khaled Basbousjeffwidman
authored andcommitted
fix(recipe): Delete lock node in queue recipe if entry already consumed
Delete lock node if already entry already consumed Fix #366 Related: #347 / #373
1 parent ac09667 commit 7a8167d

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

kazoo/recipe/queue.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,10 +335,19 @@ def _take(self, id_):
335335
id=id_),
336336
self.id,
337337
ephemeral=True)
338+
except NodeExistsError:
339+
# Item is already locked
340+
return None
341+
342+
try:
338343
value, stat = self.client.retry(
339344
self.client.get,
340345
"{path}/{id}".format(path=self._entries_path, id=id_))
341-
except (NoNodeError, NodeExistsError):
342-
# Item is already consumed or locked
346+
except NoNodeError:
347+
# Item is already consumed
348+
self.client.delete(
349+
"{path}/{id}".format(
350+
path=self._lock_path,
351+
id=id_))
343352
return None
344353
return (id_, value)

0 commit comments

Comments
 (0)