one off hack to cache query results between requests... need generalization

Ted Unangst 5 years ago
parent c230584843
commit f95c002c6d

@ -24,6 +24,7 @@ import (
"sort"
"strconv"
"strings"
"sync"
"time"
"humungus.tedunangst.com/r/webs/cache"
@ -215,10 +216,37 @@ func gethonksforuserfirstclass(userid int64, wanted int64) []*Honk {
rows, err := stmtHonksForUserFirstClass.Query(wanted, userid, dt, userid, userid)
return getsomehonks(rows, err)
}
var mehonks = make(map[int64][]*Honk)
var melock sync.Mutex
func gethonksforme(userid int64, wanted int64) []*Honk {
if wanted > 0 {
dt := time.Now().UTC().Add(-7 * 24 * time.Hour).Format(dbtimeformat)
rows, err := stmtHonksForMe.Query(wanted, userid, dt, userid)
return getsomehonks(rows, err)
}
melock.Lock()
defer melock.Unlock()
honks := mehonks[userid]
if len(honks) == 0 {
dt := time.Now().UTC().Add(-7 * 24 * time.Hour).Format(dbtimeformat)
rows, err := stmtHonksForMe.Query(wanted, userid, dt, userid)
honks = getsomehonks(rows, err)
mehonks[userid] = honks
return honks
}
wanted = honks[0].ID
dt := time.Now().UTC().Add(-7 * 24 * time.Hour).Format(dbtimeformat)
rows, err := stmtHonksForMe.Query(wanted, userid, dt, userid)
return getsomehonks(rows, err)
honks = getsomehonks(rows, err)
honks = append(honks, mehonks[userid]...)
if len(honks) > 250 {
honks = honks[:250]
}
mehonks[userid] = honks
return honks
}
func getsavedhonks(userid int64, wanted int64) []*Honk {
rows, err := stmtHonksISaved.Query(wanted, userid)

Loading…
Cancel
Save