Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-24 18:56:11 +01:00

Cache users on list releases (#527)

This commit is contained in:
Lunny Xiao 2016-12-29 21:21:19 +08:00 committed by GitHub
parent 6f4ba6884c
commit 2d1a1fce93

View file

@ -73,6 +73,8 @@ func Releases(ctx *context.Context) {
// Temproray cache commits count of used branches to speed up. // Temproray cache commits count of used branches to speed up.
countCache := make(map[string]int64) countCache := make(map[string]int64)
var cacheUsers = make(map[int64]*models.User)
var ok bool
tags := make([]*models.Release, len(rawTags)) tags := make([]*models.Release, len(rawTags))
for i, rawTag := range rawTags { for i, rawTag := range rawTags {
for j, r := range releases { for j, r := range releases {
@ -80,6 +82,7 @@ func Releases(ctx *context.Context) {
continue continue
} }
if r.TagName == rawTag { if r.TagName == rawTag {
if r.Publisher, ok = cacheUsers[r.PublisherID]; !ok {
r.Publisher, err = models.GetUserByID(r.PublisherID) r.Publisher, err = models.GetUserByID(r.PublisherID)
if err != nil { if err != nil {
if models.IsErrUserNotExist(err) { if models.IsErrUserNotExist(err) {
@ -89,6 +92,8 @@ func Releases(ctx *context.Context) {
return return
} }
} }
cacheUsers[r.PublisherID] = r.Publisher
}
if err := calReleaseNumCommitsBehind(ctx.Repo, r, countCache); err != nil { if err := calReleaseNumCommitsBehind(ctx.Repo, r, countCache); err != nil {
ctx.Handle(500, "calReleaseNumCommitsBehind", err) ctx.Handle(500, "calReleaseNumCommitsBehind", err)
@ -129,6 +134,7 @@ func Releases(ctx *context.Context) {
continue continue
} }
if r.Publisher, ok = cacheUsers[r.PublisherID]; !ok {
r.Publisher, err = models.GetUserByID(r.PublisherID) r.Publisher, err = models.GetUserByID(r.PublisherID)
if err != nil { if err != nil {
if models.IsErrUserNotExist(err) { if models.IsErrUserNotExist(err) {
@ -138,6 +144,8 @@ func Releases(ctx *context.Context) {
return return
} }
} }
cacheUsers[r.PublisherID] = r.Publisher
}
if err := calReleaseNumCommitsBehind(ctx.Repo, r, countCache); err != nil { if err := calReleaseNumCommitsBehind(ctx.Repo, r, countCache); err != nil {
ctx.Handle(500, "calReleaseNumCommitsBehind", err) ctx.Handle(500, "calReleaseNumCommitsBehind", err)