更新feed时串行改为并行

This commit is contained in:
Lyric-c 2023-08-11 14:13:57 +08:00
parent fd30dfaedb
commit b743521695

41
main.go
View File

@ -97,29 +97,36 @@ func wsHandler(w http.ResponseWriter, r *http.Request) {
}
func updateFeeds() {
var (
tick = time.Tick(time.Duration(rssUrls.ReFresh) * time.Minute)
fp = gofeed.NewParser()
formattedTime = time.Now().Format("2006-01-02 15:04:05")
)
for {
for _, url := range rssUrls.Values {
fp := gofeed.NewParser()
feed, err := fp.ParseURL(url)
if err != nil {
log.Printf("Error fetching feed: %v | %v", url, err)
continue
}
currentTime := time.Now()
formattedTime := currentTime.Format("2006-01-02 15:04:05")
feed.Custom = map[string]string{"lastupdate": formattedTime}
feedJSON, err := json.Marshal(feed)
if err != nil {
log.Printf("Error marshaling feed: %v", err)
continue
}
dbMap.Store(url, string(feedJSON))
go updateFeed(fp, url, formattedTime)
}
time.Sleep(time.Duration(rssUrls.ReFresh) * time.Minute)
<-tick
}
}
func updateFeed(fp *gofeed.Parser, url, formattedTime string) {
feed, err := fp.ParseURL(url)
if err != nil {
log.Printf("Error fetching feed: %v | %v", url, err)
return
}
feed.Custom = map[string]string{"lastupdate": formattedTime}
feedJSON, err := json.Marshal(feed)
if err != nil {
log.Printf("Error marshaling feed: %v", err)
return
}
dbMap.Store(url, string(feedJSON))
}
func getFeedsHandler(w http.ResponseWriter, r *http.Request) {
feeds := make([]gofeed.Feed, 0, len(rssUrls.Values))