From e051ef6cc4aa95ed9ec8b83c96a1a087edb652b6 Mon Sep 17 00:00:00 2001 From: Matthias Bisping Date: Fri, 18 Feb 2022 09:48:33 +0100 Subject: [PATCH] exception handling --- src/run_service.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/run_service.py b/src/run_service.py index 17f7492..b519ee8 100644 --- a/src/run_service.py +++ b/src/run_service.py @@ -1,5 +1,7 @@ import argparse +import logging import os +import traceback from fb_detr.locations import DATA_DIR from fb_detr.locations import TORCH_HOME @@ -60,12 +62,23 @@ def run_server(resume): @app.route("/", methods=["POST"]) def predict_request(): - pdf = request.data + def inner(): - pages = pdf2image.convert_from_bytes(pdf) - predictions = predictor.predict(pages) + pdf = request.data - return jsonify(list(predictions)) + pages = pdf2image.convert_from_bytes(pdf) + predictions = predictor.predict(pages) + + return jsonify(list(predictions)) + + try: + return inner() + except Exception as err: + logging.warning("Analysis failed") + logging.exception(err) + resp = jsonify("Analysis failed") + resp.status_code = 500 + return resp @app.route("/status", methods=["GET"]) def status(): @@ -74,7 +87,9 @@ def run_server(resume): predictor = initialize_predictor() - serve(app, host="127.0.0.1", port=5000) + logging.info("Predictor ready.") + + app.run(host="127.0.0.1", port=5000, debug=True) if __name__ == "__main__":