From 1907d2a90aea9bb9de88b017045da0933b66732c Mon Sep 17 00:00:00 2001 From: Yeuoly <45712896+Yeuoly@users.noreply.github.com> Date: Sat, 22 Mar 2025 11:17:21 +0800 Subject: [PATCH] fix: optimize query for expired workflow runs by adding date filter and limiting results (#16491) --- api/services/clear_free_plan_tenant_expired_logs.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/services/clear_free_plan_tenant_expired_logs.py b/api/services/clear_free_plan_tenant_expired_logs.py index 25cad92e14..5762bf9600 100644 --- a/api/services/clear_free_plan_tenant_expired_logs.py +++ b/api/services/clear_free_plan_tenant_expired_logs.py @@ -149,7 +149,15 @@ class ClearFreePlanTenantExpiredLogs: while True: with Session(db.engine).no_autoflush as session: - workflow_runs = session.query(WorkflowRun).filter(WorkflowRun.tenant_id == tenant_id).all() + workflow_runs = ( + session.query(WorkflowRun) + .filter( + WorkflowRun.tenant_id == tenant_id, + WorkflowRun.created_at < datetime.datetime.now() - datetime.timedelta(days=days), + ) + .limit(batch) + .all() + ) if len(workflow_runs) == 0: break