优化回调请求处理为已完成

This commit is contained in:
mark.tian
2025-12-10 12:18:28 +08:00
parent 0533a455cd
commit 851e92ad3a
2 changed files with 54 additions and 36 deletions

View File

@@ -327,11 +327,27 @@ async def mark_callback_log_completed(db: AsyncSession, callback_log_id: int) ->
)
success_count = success_result.fetchone()[0]
if success_count == 0:
logger.warning(f"⚠️ 回调日志 {callback_log_id} 没有成功的推送记录,不标记为完成")
# 检查失败记录数量
failure_result = await db.execute(
text("""
SELECT COUNT(*) as failure_count
FROM external_api_logs
WHERE callback_failure_log_id = :log_id
AND response_status != 200
"""),
{"log_id": callback_log_id}
)
failure_count = failure_result.fetchone()[0]
# 如果有成功记录,或者失败记录达到最大重试次数,则标记为完成
if success_count == 0 and failure_count < settings.external_api_retry_max:
logger.warning(f"⚠️ 回调日志 {callback_log_id} 没有成功的推送记录,且失败记录({failure_count}条)未达到最大重试次数({settings.external_api_retry_max}条),不标记为完成")
return False
logger.info(f"✅ 回调日志 {callback_log_id} 找到 {success_count} 条成功推送记录,开始标记为完成")
if success_count > 0:
logger.info(f"✅ 回调日志 {callback_log_id} 找到 {success_count} 条成功推送记录,开始标记为完成")
else:
logger.info(f"✅ 回调日志 {callback_log_id} 失败记录({failure_count}条)已达到最大重试次数({settings.external_api_retry_max}条),开始标记为完成")
# 更新指定日志记录为已完成
result = await db.execute(