From f758e7b9443db28deb7f1637aa08d74beb3eb23b Mon Sep 17 00:00:00 2001 From: srcrs Date: Wed, 2 Aug 2023 00:37:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E5=92=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index f613ce5..4a57875 100644 --- a/main.go +++ b/main.go @@ -14,7 +14,9 @@ import ( ) type Config struct { - Values []string `json:"values"` + Values []string `json:"values"` + ReFresh int `json:"refresh"` + IsUpdatePush bool `json:"isUpdatePush"` } var ( @@ -70,19 +72,26 @@ func wsHandler(w http.ResponseWriter, r *http.Request) { return } defer conn.Close() + for { + for _, url := range rssUrls.Values { + feedJSON, err := get(url) + if err != nil { + log.Printf("Error getting feed from Redis: %v", err) + continue + } - for _, url := range rssUrls.Values { - feedJSON, err := get(url) - if err != nil { - log.Printf("Error getting feed from Redis: %v", err) - continue + err = conn.WriteMessage(websocket.TextMessage, []byte(feedJSON)) + //错误直接关闭更新 + if err != nil { + log.Printf("Error sending message or Connection closed: %v", err) + return + } } - - err = conn.WriteMessage(websocket.TextMessage, []byte(feedJSON)) - if err != nil { - log.Printf("Error sending message: %v", err) - continue + //如果未配置则不自动更新 + if !rssUrls.IsUpdatePush { + return } + time.Sleep(time.Duration(rssUrls.ReFresh+1) * time.Minute) } } @@ -107,7 +116,7 @@ func updateFeeds() { log.Printf("Error saving feed to Redis: %v", err) } } - time.Sleep(5 * time.Minute) + time.Sleep(time.Duration(rssUrls.ReFresh) * time.Minute) } }