From e7f45d1ae2b63a81de834226f25a49a775d6f7a4 Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Thu, 17 Apr 2008 13:23:19 +0000 Subject: [PATCH] fix retry/failed event handling in pgq.Consumer --- python/pgq/consumer.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/python/pgq/consumer.py b/python/pgq/consumer.py index af02e4fd..cf47875c 100644 --- a/python/pgq/consumer.py +++ b/python/pgq/consumer.py @@ -240,12 +240,15 @@ class Consumer(skytools.DBScript): def _finish_batch(self, curs, batch_id, list): """Tag events and notify that the batch is done.""" + retry = failed = 0 if self.pgq_lazy_fetch: for ev_id, stat in list.iter_status(): if stat[0] == EV_RETRY: self._tag_retry(curs, batch_id, ev_id, stat[1]) + retry += 1 elif stat[0] == EV_FAILED: self._tag_failed(curs, batch_id, ev_id, stat[1]) + failed += 1 else: for ev in list: if ev.status == EV_FAILED: @@ -255,6 +258,12 @@ class Consumer(skytools.DBScript): self._tag_retry(curs, batch_id, ev.id, ev.retry_time) retry += 1 + # report weird events + if retry: + self.stat_add('retry-events', retry) + if failed: + self.stat_add('failed-events', failed) + curs.execute("select pgq.finish_batch(%s)", [batch_id]) def _tag_failed(self, curs, batch_id, ev_id, fail_reason): -- 2.39.5