From c06f90a9765c3c890657c4d8d57f22e927507e8b Mon Sep 17 00:00:00 2001
From: istmxrein <maximilian.reinheimer@stud.h-da.de>
Date: Sat, 22 Jul 2023 12:16:19 +0200
Subject: [PATCH] update meta consumer

---
 pilab/events/meta.py | 14 +++++++++-----
 setup.py             |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/pilab/events/meta.py b/pilab/events/meta.py
index 2ea6b3f..3c67b2a 100644
--- a/pilab/events/meta.py
+++ b/pilab/events/meta.py
@@ -88,20 +88,20 @@ class MetaListener(threading.Thread):
         self.offset = offset
         self.channel = None
         self.connection = None
-
-        self._prefetch_count = 2
+        self._prefetch_count = 1
 
     def default_callback(self, ch, method, properties, body):
         try:
             event = Event.parse_obj(json.loads(body.decode('utf-8')))
             offset = properties.headers['x-stream-offset']
             self.callback(event, offset)
-            ch.basic_ack(delivery_tag=method.delivery_tag)
+            self.channel.basic_ack(method.delivery_tag)
             self.offset = offset
             logger.info(f"Event processed succesful")
         except Exception as e:
             traceback.print_exc()
-            logger.error(f"Failed to process Event; message {e}")
+            logger.error(f"Failed to process Meta event; message {e}")
+            raise
 
     def run(self):
         while True:
@@ -128,9 +128,13 @@ class MetaListener(threading.Thread):
             # Do not recover on channel errors
             except pika.exceptions.AMQPChannelError as err:
                 logger.error(f"Caught a channel error: {err}, stopping...")
-                break
+                continue
             # Recover on all other connection errors
             except pika.exceptions.AMQPConnectionError:
                 logger.error(f"Connection closed unexpected, retrying...")
                 time.sleep(1)
                 continue
+            except Exception:
+                logger.error(f"Unexpected error occured, retrying...")
+                time.sleep(1)
+                continue
diff --git a/setup.py b/setup.py
index 89f4aae..57f612e 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
 
 setup(
     name='pilab',
-    version='3.4.2',
+    version='3.5.2',
     description='Shared-Libs for the pi-lab microservices',
     url='https://code.fbi.h-da.de/api/v4/projects/27896/packages/pypi/pilab',
     author='Max Reinheimer',
-- 
GitLab