try varnish invalidation with all languages
This commit is contained in:
parent
1f24f03cf5
commit
85248787fc
@ -26,6 +26,14 @@ type nullHandler struct {
|
|||||||
access sync.Mutex
|
access sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *nullHandler) ForEachI18N(v func(string)) {
|
||||||
|
self.access.Lock()
|
||||||
|
for lang := range self.i18n {
|
||||||
|
v(lang)
|
||||||
|
}
|
||||||
|
self.access.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
func (self *nullHandler) GetI18N(r *http.Request) *I18N {
|
func (self *nullHandler) GetI18N(r *http.Request) *I18N {
|
||||||
lang := r.URL.Query().Get("lang")
|
lang := r.URL.Query().Get("lang")
|
||||||
if lang == "" {
|
if lang == "" {
|
||||||
|
@ -17,7 +17,18 @@ type VarnishCache struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *VarnishCache) invalidate(r string) {
|
func (self *VarnishCache) invalidate(r string) {
|
||||||
|
var langs []string
|
||||||
|
langs = append(langs, "")
|
||||||
|
self.handler.ForEachI18N(func(lang string) {
|
||||||
|
langs = append(langs, lang)
|
||||||
|
})
|
||||||
|
for _, lang := range langs {
|
||||||
u, _ := url.Parse(r)
|
u, _ := url.Parse(r)
|
||||||
|
if lang != "" {
|
||||||
|
q := u.Query()
|
||||||
|
q.Add("lang", lang)
|
||||||
|
u.RawQuery = q.Encode()
|
||||||
|
}
|
||||||
resp, err := self.client.Do(&http.Request{
|
resp, err := self.client.Do(&http.Request{
|
||||||
Method: "PURGE",
|
Method: "PURGE",
|
||||||
URL: u,
|
URL: u,
|
||||||
@ -27,6 +38,7 @@ func (self *VarnishCache) invalidate(r string) {
|
|||||||
} else {
|
} else {
|
||||||
log.Println("varnish cache error", err)
|
log.Println("varnish cache error", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *VarnishCache) DeleteBoardMarkup(group string) {
|
func (self *VarnishCache) DeleteBoardMarkup(group string) {
|
||||||
|
Reference in New Issue
Block a user