diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/pgq/consumer.py | 9 |
1 files changed, 9 insertions, 0 deletions
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): |