优化回调请求处理为已完成
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user