fix: harden cross-review task state handling

This commit is contained in:
wren
2026-05-12 11:30:56 +08:00
parent 2ca44f6312
commit 3823c9a2e4
10 changed files with 373 additions and 20 deletions
+11 -1
View File
@@ -3,11 +3,13 @@
from __future__ import annotations
from celery import Celery
from celery.schedules import crontab
from kombu import Queue
from fastapi_admin.config import (
LEAUDIT_TASK_SOFT_TIME_LIMIT,
LEAUDIT_TASK_TIME_LIMIT,
LEAUDIT_STUCK_SCAN_CRON_MINUTES,
LEAUDIT_WORKER_QUEUE_NORMAL,
LEAUDIT_WORKER_QUEUE_URGENT,
REDIS_DB,
@@ -41,10 +43,18 @@ celery_app.conf.update(
broker_connection_retry_on_startup=True,
task_soft_time_limit=LEAUDIT_TASK_SOFT_TIME_LIMIT,
task_time_limit=LEAUDIT_TASK_TIME_LIMIT,
beat_schedule={
"leaudit-scan-stuck-documents": {
"task": "leaudit.scan_stuck_documents",
"schedule": crontab(minute=f"*/{max(1, int(LEAUDIT_STUCK_SCAN_CRON_MINUTES))}"),
"options": {"queue": LEAUDIT_WORKER_QUEUE_NORMAL},
}
},
)
celery_app.autodiscover_tasks(
[
"fastapi_modules.fastapi_leaudit.leaudit_bridge",
]
],
force=True,
)
+2
View File
@@ -71,6 +71,8 @@ LEAUDIT_WORKER_QUEUE_URGENT: str
LEAUDIT_WORKER_QUEUE_NORMAL: str
LEAUDIT_WORKER_CONCURRENCY: int
LEAUDIT_RUN_LOCK_SECONDS: int
LEAUDIT_STUCK_SCAN_CRON_MINUTES: int
LEAUDIT_STUCK_TIMEOUT_MINUTES: int
LEAUDIT_TASK_SOFT_TIME_LIMIT: int
LEAUDIT_TASK_TIME_LIMIT: int
+2
View File
@@ -111,6 +111,8 @@ class LeauditSettings(_Base):
LEAUDIT_WORKER_QUEUE_NORMAL: str = "leaudit.normal"
LEAUDIT_WORKER_CONCURRENCY: int = 2
LEAUDIT_RUN_LOCK_SECONDS: int = 1800
LEAUDIT_STUCK_SCAN_CRON_MINUTES: int = 5
LEAUDIT_STUCK_TIMEOUT_MINUTES: int = 20
LEAUDIT_TASK_SOFT_TIME_LIMIT: int = 3300
LEAUDIT_TASK_TIME_LIMIT: int = 3600