更新feed时串行改为并行
This commit is contained in:
parent
fd30dfaedb
commit
b743521695
41
main.go
41
main.go
@ -97,29 +97,36 @@ func wsHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func updateFeeds() {
|
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 {
|
||||||
for _, url := range rssUrls.Values {
|
for _, url := range rssUrls.Values {
|
||||||
fp := gofeed.NewParser()
|
go updateFeed(fp, url, formattedTime)
|
||||||
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))
|
|
||||||
}
|
}
|
||||||
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) {
|
func getFeedsHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
feeds := make([]gofeed.Feed, 0, len(rssUrls.Values))
|
feeds := make([]gofeed.Feed, 0, len(rssUrls.Values))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user