diff options
author | Petr Jelinek | 2013-01-24 13:04:31 +0000 |
---|---|---|
committer | Petr Jelinek | 2013-01-24 13:04:31 +0000 |
commit | c5155488cac0c73774aa4e2788f34f37e28818c2 (patch) | |
tree | 196433412e6bfcd7c4c79429ada2d249f510ed3b | |
parent | 37d41a17cd2227fd73d2e8aa11ecb70b06948d32 (diff) |
Initialize Event properly in BaseConsumer
-rw-r--r-- | python/pgq/baseconsumer.py | 7 | ||||
-rw-r--r-- | python/pgq/consumer.py | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/python/pgq/baseconsumer.py b/python/pgq/baseconsumer.py index 7648a160..9159106e 100644 --- a/python/pgq/baseconsumer.py +++ b/python/pgq/baseconsumer.py @@ -24,8 +24,6 @@ class BaseBatchWalker(object): - len() after that """ - _event_class = Event - def __init__(self, curs, batch_id, queue_name, fetch_size = 300, consumer_filter = None): self.queue_name = queue_name self.fetch_size = fetch_size @@ -36,6 +34,9 @@ class BaseBatchWalker(object): self.fetch_status = 0 # 0-not started, 1-in-progress, 2-done self.consumer_filter = consumer_filter + def _make_event(self, queue_name, row): + return Event(queue_name, row) + def __iter__(self): if self.fetch_status: raise Exception("BatchWalker: double fetch? (%d)" % self.fetch_status) @@ -53,7 +54,7 @@ class BaseBatchWalker(object): self.length += len(rows) for row in rows: - ev = self._event_class(self, self.queue_name, row) + ev = self._make_event(self.queue_name, row) yield ev # if less rows than requested, it was final block diff --git a/python/pgq/consumer.py b/python/pgq/consumer.py index 19fbf5ef..3d78105f 100644 --- a/python/pgq/consumer.py +++ b/python/pgq/consumer.py @@ -31,12 +31,13 @@ class RetriableBatchWalker(BaseBatchWalker): """BatchWalker that returns RetriableEvents """ - _event_class = RetriableWalkerEvent - def __init__(self, curs, batch_id, queue_name, fetch_size = 300, consumer_filter = None): super(RetriableBatchWalker, self).__init__(self, curs, batch_id, queue_name, fetch_size, consumer_filter) self.status_map = {} + def _make_event(self, queue_name, row): + return RetriableWalkerEvent(self, queue_name, row) + def tag_event_done(self, event): if event.id in self.status_map: del self.status_map[event.id] |