我想每 5 分钟运行一次任务来更新网站上的统计信息,而不阻塞 HTTP 服务器。
我刚刚通过工作人员示例添加了基本的 HTTP 服务器逻辑。如果我添加了这样的多个任务,这被认为是不好的做法还是有更好的方法?
package main
import (
"fmt"
"net/http"
"time"
)
func Home(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Home page")
}
func schedule(f func(), interval time.Duration) *time.Ticker {
ticker := time.NewTicker(interval)
go func() {
for range ticker.C {
f()
}
}()
return ticker
}
func longRunningTask() {
fmt.Println("Long running task")
}
func main() {
schedule(longRunningTask, time.Second*5)
http.HandleFunc("/", Home)
http.ListenAndServe("127.0.0.1:8080", nil)
}
牧羊人nacy
相关分类