fix(beat): prune_query celery task args fix (#32511)

This commit is contained in:
Usiel Riedl
2025-03-06 11:25:53 +08:00
committed by GitHub
parent 317532752c
commit e98194cdd3
2 changed files with 14 additions and 5 deletions

View File

@@ -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},
# },
}

View File

@@ -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)