From 1dd3e46ced37497277902103b4a6f72ac8167c08 Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Fri, 14 Feb 2025 06:56:26 -0500 Subject: [PATCH] update sr3 event handling --- msc_pygeoapi/event/__init__.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/msc_pygeoapi/event/__init__.py b/msc_pygeoapi/event/__init__.py index 1ed01c4c..d5ce1480 100644 --- a/msc_pygeoapi/event/__init__.py +++ b/msc_pygeoapi/event/__init__.py @@ -5,7 +5,7 @@ # # Etienne Pelletier # -# Copyright (c) 2021 Tom Kralidis +# Copyright (c) 2025 Tom Kralidis # Copyright (c) 2024 Louis-Philippe Rousseau-Lambert # Copyright (c) 2024 Etienne Pelletier # @@ -31,6 +31,7 @@ # OTHER DEALINGS IN THE SOFTWARE. # # ================================================================= + import logging from sarracenia.flowcb import FlowCB @@ -40,17 +41,18 @@ class EventBase(FlowCB): - def process_messages(self, worklist) -> bool: + def process_message(self, worklist, worklist_type) -> bool: """ - Process messages from the worklist + Process sarracenia message :param worklist: `sarracenia.flow.worklist` :returns: `bool` """ - for msg in worklist.incoming: + new_msgs = [] + for msg in getattr(worklist, worklist_type): try: from msc_pygeoapi.handler.core import CoreHandler @@ -59,11 +61,14 @@ def process_messages(self, worklist) -> bool: handler = CoreHandler(filepath) result = handler.handle() LOGGER.debug(f'Result: {result}') + new_msgs.append(msg) except Exception as err: LOGGER.error(f'Error handling message: {err}') worklist.failed.append(msg) return False + setattr(worklist, worklist_type, new_msgs) + return True @@ -77,7 +82,8 @@ def after_work(self, worklist) -> None: :returns: `bool` """ - return self.process_messages(worklist) + + return self.process_message(worklist, 'ok') class EventAfterAccept(EventBase): @@ -90,4 +96,5 @@ def after_accept(self, worklist) -> None: :returns: `bool` """ - return self.process_messages(worklist) + + return self.process_message(worklist, 'incoming')