mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
fix(beat): prune_query celery task args fix (#32511)
This commit is contained in:
@@ -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},
|
||||
# },
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user