소스 검색

fix: optimize query for expired workflow runs by adding date filter and limiting results (#16491)

Yeuoly 1 개월 전
부모
커밋
1907d2a90a
1개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 1
      api/services/clear_free_plan_tenant_expired_logs.py

+ 9 - 1
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