This is an automated email from the ASF dual-hosted git repository.
villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new e98194cdd3 fix(beat): prune_query celery task args fix (#32511)
e98194cdd3 is described below
commit e98194cdd34f459b92b936f73a73c507433b90cc
Author: Usiel Riedl <[email protected]>
AuthorDate: Thu Mar 6 11:25:53 2025 +0800
fix(beat): prune_query celery task args fix (#32511)
---
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 44e91c956c..d7c451feb7 100644
--- a/superset/config.py
+++ b/superset/config.py
@@ -1038,7 +1038,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)