This is an automated email from the ASF dual-hosted git repository. michaelsmolina pushed a commit to branch 5.0 in repository https://gitbox.apache.org/repos/asf/superset.git
commit d0a5bd83c3447a86c1d876bfd9a7cb49756940c2 Author: Usiel Riedl <[email protected]> AuthorDate: Thu Mar 6 11:25:53 2025 +0800 fix(beat): prune_query celery task args fix (#32511) (cherry picked from commit e98194cdd34f459b92b936f73a73c507433b90cc) --- superset/config.py | 2 +- superset/tasks/scheduler.py | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/superset/config.py b/superset/config.py index 6362e39aec..10b582f371 100644 --- a/superset/config.py +++ b/superset/config.py @@ -1034,7 +1034,7 @@ class CeleryConfig: # pylint: disable=too-few-public-methods # "prune_query": { # "task": "prune_query", # "schedule": crontab(minute=0, hour=0, day_of_month=1), - # "options": {"retention_period_days": 180}, + # "kwargs": {"retention_period_days": 180}, # }, } diff --git a/superset/tasks/scheduler.py b/superset/tasks/scheduler.py index ce963eff64..25158bd04f 100644 --- a/superset/tasks/scheduler.py +++ b/superset/tasks/scheduler.py @@ -16,6 +16,7 @@ # under the License. import logging from datetime import datetime, timezone +from typing import Optional from celery import Celery from celery.exceptions import SoftTimeLimitExceeded @@ -123,13 +124,21 @@ def prune_log() -> None: @celery_app.task(name="prune_query") -def prune_query() -> None: +def prune_query(retention_period_days: Optional[int] = None) -> None: stats_logger: BaseStatsLogger = app.config["STATS_LOGGER"] stats_logger.incr("prune_query") + # TODO: Deprecated: Remove support for passing retention period via options in 6.0 + if retention_period_days is None: + retention_period_days = prune_query.request.properties.get( + "retention_period_days" + ) + logger.warning( + "Your `prune_query` beat schedule uses `options` to pass the retention " + "period, please use `kwargs` instead." + ) + try: - QueryPruneCommand( - prune_query.request.properties.get("retention_period_days") - ).run() + QueryPruneCommand(retention_period_days).run() except CommandException as ex: logger.exception("An error occurred while pruning queries: %s", ex)
