diff --git a/pyinfra/server/server.py b/pyinfra/server/server.py index acf4f0b..65d74c6 100644 --- a/pyinfra/server/server.py +++ b/pyinfra/server/server.py @@ -31,8 +31,8 @@ class Processor(abc.ABC): def submit(self, package, final): """Submit computation request to execution queue; computation is performed on demand. - Use for processor functions that are 1 -> n where n can take up a lot of memory, since - the""" + """ + self.execution_queue = chain(self.execution_queue, self.processor_fn(package, final=final)) def compute_next(self): @@ -61,6 +61,9 @@ def set_up_processing_server(process_fn): @app.route("/pickup", methods=["GET"]) def pickup(): result = processor.compute_next() + if not valid(result): + logger.error(f"Received invalid result: {result}") + result = Nothing if result is Nothing: resp = jsonify("No more items left") @@ -73,3 +76,7 @@ def set_up_processing_server(process_fn): return resp return app + + +def valid(result): + return isinstance(result, dict) or isinstance(result, Nothing)