fix: 物流签收检查异常后未rollback导致PendingRollbackError
check_delivery_by_tracking 内部捕获 SQLAlchemyError 后仅打日志,未调用 session.rollback(),导致 session 处于 invalid 状态,外层 scheduler 的 session.commit() 触发 PendingRollbackError。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d501a8fed1
commit
394a583ed3
@ -1670,10 +1670,13 @@ class LogisticsService:
|
||||
break
|
||||
except Exception as e:
|
||||
logger.warning("[物流签收检查] 订单 %s (单号: %s) 检查失败: %s", order.order_no, order.tracking_number or "未填写", e)
|
||||
if isinstance(e, SQLAlchemyError):
|
||||
session.rollback()
|
||||
continue
|
||||
|
||||
except SQLAlchemyError as e:
|
||||
logger.error("检查物流状态数据库异常: %s", e)
|
||||
session.rollback()
|
||||
|
||||
def _update_order_to_delivered(self, session: Session, order) -> None:
|
||||
"""将订单状态更新为已送达,并同步相关数据。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user