fix: scope transactional locks to primary records
This commit is contained in:
@@ -508,7 +508,7 @@ def process_support_analysis_result(run: AgentRun) -> TicketSupportAnalysis | No
|
||||
if run.definition.code != SUPPORT_AGENT_CODE or run.status != "succeeded":
|
||||
return None
|
||||
analysis = (
|
||||
TicketSupportAnalysis.objects.select_for_update()
|
||||
TicketSupportAnalysis.objects.select_for_update(of=("self",))
|
||||
.select_related(
|
||||
"ticket__category",
|
||||
"ticket__resolution",
|
||||
@@ -583,7 +583,11 @@ def process_support_analysis_result(run: AgentRun) -> TicketSupportAnalysis | No
|
||||
def start_ticket_support_analysis(ticket: Ticket, *, created_by=None) -> TicketSupportAnalysis:
|
||||
"""为工单创建唯一活动分析并投递绑定正式 Agent 版本的运行。"""
|
||||
|
||||
ticket = Ticket.objects.select_for_update().select_related("category").get(id=ticket.id)
|
||||
ticket = (
|
||||
Ticket.objects.select_for_update(of=("self",))
|
||||
.select_related("category")
|
||||
.get(id=ticket.id)
|
||||
)
|
||||
if ticket.archived_at is not None:
|
||||
raise SupportAnalysisError("已归档工单不能启动支持分析")
|
||||
if ticket.status in {"resolved", "closed"}:
|
||||
|
||||
Reference in New Issue
Block a user