From b459abb35d0194a4c9a3ed5ffb699617a0c80df2 Mon Sep 17 00:00:00 2001 From: spark Date: Tue, 11 Feb 2025 12:29:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(data):=E4=B8=BA=E6=95=B0=E6=8D=AE=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=A4=B1=E8=B4=A5=E6=97=B6=E6=B7=BB=E5=8A=A0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=8F=8D=E9=A6=88=E5=B9=B6=E8=AE=BE=E7=BD=AE=E8=B6=85?= =?UTF-8?q?=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在获取股票价格、财报、市场资讯、股票资讯和电报资讯失败时,向用户发送错误信息 - 为 GetFinancialReports、SearchStockPriceInfo 和 SearchStockInfo 函数添加 30 秒超时设置 --- backend/data/openai_api.go | 11 ++++++++++- backend/data/stock_data_api.go | 11 +++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/backend/data/openai_api.go b/backend/data/openai_api.go index a40b96a..84a6f8f 100644 --- a/backend/data/openai_api.go +++ b/backend/data/openai_api.go @@ -108,6 +108,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := SearchStockPriceInfo(stockCode) if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取股票价格失败") + ch <- "***获取股票价格失败,分析结果可能不准确***
" return } price := "" @@ -125,6 +126,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := GetFinancialReports(stockCode) if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取股票财报失败") + ch <- "***获取股票财报失败,分析结果可能不准确***
" return } for _, message := range *messages { @@ -140,6 +142,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := GetTelegraphList() if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取市场资讯失败") + ch <- "***获取市场资讯失败,分析结果可能不准确***
" return } for _, message := range *messages { @@ -155,6 +158,7 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := SearchStockInfo(stock, "depth") if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取股票资讯失败") + ch <- "***获取股票资讯失败,分析结果可能不准确***
" return } for _, message := range *messages { @@ -169,6 +173,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := SearchStockInfo(stock, "telegram") if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取股票电报资讯失败") + ch <- "***获取股票电报资讯失败,分析结果可能不准确***
" + return } for _, message := range *messages { @@ -265,8 +271,11 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { func GetFinancialReports(stockCode string) *[]string { // 创建一个 chromedp 上下文 + timeoutCtx, timeoutCtxCancel := context.WithTimeout(context.Background(), 30*time.Second) + defer timeoutCtxCancel() + ctx, cancel := chromedp.NewContext( - context.Background(), + timeoutCtx, chromedp.WithLogf(logger.SugaredLogger.Infof), chromedp.WithErrorf(logger.SugaredLogger.Errorf), ) diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go index 539c4da..97c4ab8 100644 --- a/backend/data/stock_data_api.go +++ b/backend/data/stock_data_api.go @@ -518,8 +518,12 @@ func (IndexBasic) TableName() string { func SearchStockPriceInfo(stockCode string) *[]string { url := "https://www.cls.cn/stock?code=" + stockCode // 创建一个 chromedp 上下文 + + timeoutCtx, timeoutCtxCancel := context.WithTimeout(context.Background(), 30*time.Second) + defer timeoutCtxCancel() + ctx, cancel := chromedp.NewContext( - context.Background(), + timeoutCtx, chromedp.WithLogf(logger.SugaredLogger.Infof), chromedp.WithErrorf(logger.SugaredLogger.Errorf), ) @@ -588,8 +592,11 @@ func FetchPrice(ctx context.Context) (string, error) { } func SearchStockInfo(stock, msgType string) *[]string { // 创建一个 chromedp 上下文 + timeoutCtx, timeoutCtxCancel := context.WithTimeout(context.Background(), 30*time.Second) + defer timeoutCtxCancel() + ctx, cancel := chromedp.NewContext( - context.Background(), + timeoutCtx, chromedp.WithLogf(logger.SugaredLogger.Infof), chromedp.WithErrorf(logger.SugaredLogger.Errorf), )