From 8c43fb456987d2c713d7cece83263fe6bc05921a Mon Sep 17 00:00:00 2001 From: yml2213 Date: Mon, 5 Oct 2026 19:57:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(delivery):=20=E5=B0=86=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=8F=91=E8=B4=A7=E5=87=BA=E7=AB=99=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E8=B0=83=E5=88=B0=2030=20=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 常态提交约 11 秒,15 秒上限会在上游偶发变慢时提前断开,可能把仍在处理的订单记成失败。 Co-authored-by: Cursor --- backend/internal/service/delivery.go | 4 +++- backend/internal/service/provider_dlc.go | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/backend/internal/service/delivery.go b/backend/internal/service/delivery.go index b4933c2..266499e 100644 --- a/backend/internal/service/delivery.go +++ b/backend/internal/service/delivery.go @@ -29,6 +29,8 @@ const ( deliveryStageCreateOrder = "create_upstream" // 创建上游正式订单失败 deliverySubmissionStaleTimeout = 10 * time.Minute + // 第一平台创建正式订单常态约 11 秒,15 秒上限会在偶发变慢时提前断开。 + deliveryUpstreamTimeout = 30 * time.Second ) // deliverySubmittedUpstream 判断订单是否已成功提交到上游正式订单。 @@ -79,7 +81,7 @@ func NewDeliveryService(fulfillment *FulfillmentService, bffBaseURL, channel, li if linkTTLMinutes < 0 { linkTTLMinutes = 0 } - client := &http.Client{Timeout: 15 * time.Second} + client := &http.Client{Timeout: deliveryUpstreamTimeout} dlc := NewDLCProvider(bffBaseURL, channel, client) router := NewFulfillmentRouter(dlc) return &DeliveryService{ diff --git a/backend/internal/service/provider_dlc.go b/backend/internal/service/provider_dlc.go index df6fbd0..2c762c8 100644 --- a/backend/internal/service/provider_dlc.go +++ b/backend/internal/service/provider_dlc.go @@ -41,7 +41,7 @@ func NewDLCProvider(bffBaseURL, channel string, httpClient *http.Client) *DLCPro channel = "dlc" } if httpClient == nil { - httpClient = &http.Client{Timeout: 15 * timeSecond(15)} + httpClient = &http.Client{Timeout: deliveryUpstreamTimeout} } return &DLCProvider{ bffBaseURL: bffBaseURL, @@ -633,6 +633,3 @@ func (p *DLCProvider) signProxy(path, method string, data interface{}, out inter return lastErr } -func timeSecond(s int) time.Duration { - return time.Duration(s) * time.Second -}