From 3291a6b516941a8b5480d4427baf1dfd8e894e35 Mon Sep 17 00:00:00 2001 From: Thomas Kluyver <thomas@kluyver.me.uk> Date: Fri, 26 Feb 2021 17:25:22 +0000 Subject: [PATCH] Call metadata server after replying to ZMQ message --- webservice/webservice.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/webservice/webservice.py b/webservice/webservice.py index 4b31218f4..6477aead8 100644 --- a/webservice/webservice.py +++ b/webservice/webservice.py @@ -774,11 +774,17 @@ class ActionsServer: except Exception as e: msg = Errors.JOB_LAUNCH_FAILED.format('correct', e) logging.error(msg, exc_info=e) - await update_mdc_status(self.mdc, 'correct', rid, msg) + asyncio.ensure_future( + update_mdc_status(self.mdc, 'correct', rid, msg) + ) return msg.encode() + queued_msg = Success.QUEUED.format(proposal, [runnr]) + logging.debug(queued_msg) + async def _continue(): """Runs in the background after we reply to the 'correct' request""" + await update_mdc_status(self.mdc, 'correct', rid, queued_msg) try: transfer_complete = await wait_transfers( [runnr], in_folder, proposal @@ -840,12 +846,7 @@ class ActionsServer: asyncio.ensure_future(_continue()) - msg = Success.QUEUED.format(proposal, [runnr]) - logging.debug(msg) - await update_mdc_status(self.mdc, 'correct', rid, msg) - return msg.encode() - - + return queued_msg.encode() async def handle_dark( self, rid, _sase, instrument, cycle, proposal, karabo_ids, @@ -1011,11 +1012,18 @@ class ActionsServer: except Exception as e: msg = Errors.JOB_LAUNCH_FAILED.format('dark_request', e) logging.error(msg, exc_info=e) - await update_mdc_status(self.mdc, 'dark_request', rid, msg) + asyncio.ensure_future( + update_mdc_status(self.mdc, 'dark_request', rid, msg) + ) return msg.encode() + queued_msg = Success.QUEUED.format(proposal, wait_runs) + logging.debug(queued_msg) + async def _continue(): """Runs in the background after we reply to the 'dark_request' request""" + await update_mdc_status(self.mdc, 'dark_request', rid, queued_msg) + transfer_complete = await wait_transfers( wait_runs, in_folder, proposal ) @@ -1071,10 +1079,7 @@ class ActionsServer: asyncio.ensure_future(_continue()) - msg = Success.QUEUED.format(proposal, wait_runs) - logging.debug(msg) - await update_mdc_status(self.mdc, 'dark_request', rid, msg) - return msg.encode() + return queued_msg.encode() def handle_query_rid(self, rid): return query_rid(self.job_db, rid) -- GitLab