perf: harden quotas and reduce compression overhead
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
237899745
2026-07-25 23:10:59 +08:00
parent 49189d346b
commit 86da5cf1f5
15 changed files with 464 additions and 210 deletions

View File

@@ -412,18 +412,17 @@ async fn list_history(
let limit = query.limit.unwrap_or(20).clamp(1, 100);
let page = query.page.unwrap_or(1).max(1);
let offset = (page - 1) * limit;
let status = query
.status
.map(|s| s.trim().to_string())
.filter(|s| !s.is_empty());
let status = super::normalize_task_status(query.status.as_deref())?;
let total: i64 = if let Some(status) = &status {
sqlx::query_scalar("SELECT COUNT(*) FROM tasks WHERE user_id = $1 AND status::text = $2")
.bind(user_id)
.bind(status)
.fetch_one(&state.db)
.await
.map_err(|err| AppError::new(ErrorCode::Internal, "查询历史失败").with_source(err))?
let total: i64 = if let Some(status) = status {
sqlx::query_scalar(
"SELECT COUNT(*) FROM tasks WHERE user_id = $1 AND status = $2::task_status",
)
.bind(user_id)
.bind(status)
.fetch_one(&state.db)
.await
.map_err(|err| AppError::new(ErrorCode::Internal, "查询历史失败").with_source(err))?
} else {
sqlx::query_scalar("SELECT COUNT(*) FROM tasks WHERE user_id = $1")
.bind(user_id)
@@ -445,7 +444,7 @@ async fn list_history(
expires_at: DateTime<Utc>,
}
let tasks: Vec<TaskRow> = if let Some(status) = &status {
let tasks: Vec<TaskRow> = if let Some(status) = status {
sqlx::query_as::<_, TaskRow>(
r#"
SELECT
@@ -459,7 +458,7 @@ async fn list_history(
completed_at,
expires_at
FROM tasks
WHERE user_id = $1 AND status::text = $2
WHERE user_id = $1 AND status = $2::task_status
ORDER BY created_at DESC
LIMIT $3 OFFSET $4
"#,