From 4e4ccd48d64adf187dbc682ebf68a3954a37b943 Mon Sep 17 00:00:00 2001 From: John Bodley <4567245+john-bodley@users.noreply.github.com> Date: Fri, 10 Jul 2020 09:53:57 -0700 Subject: [PATCH] chore: Releasing SQL Lab Celery results (#10279) Co-authored-by: John Bodley --- superset/views/core.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/superset/views/core.py b/superset/views/core.py index fea37b9ac..bce099630 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2101,7 +2101,7 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods logger.info("Query %i: Running query on a Celery worker", query.id) # Ignore the celery future object and the request may time out. try: - sql_lab.get_sql_results.delay( + task = sql_lab.get_sql_results.delay( query.id, rendered_query, return_results=False, @@ -2111,6 +2111,10 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods expand_data=expand_data, log_params=log_params, ) + + # Explicitly forget the task to ensure the task metadata is removed from the + # Celery results backend in a timely manner. + task.forget() except Exception as ex: # pylint: disable=broad-except logger.exception("Query %i: %s", query.id, str(ex)) msg = _(