Golang Cache Loader
- Thread safe
- Fetch once even when concurrent process request same key.
- stale-while-revalidate when item is expired
funcmain() {
itemLoader:=loader.NewLRU(fetchItem, 5*time.Minute, 1000)
item, err:=loader.Get("key")
// use item
}
funcfetchItem(keyinterface{}) (interface{}, error) {
res, err:=http.Get("https://example.com/item/"+key)
iferr!=nil {
returnnil, err
}
returnprocessResponse(res)
}