Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit790fc21

Browse files
committed
Parallelize user/group fetching
1 parent24d19e5 commit790fc21

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

‎coderd/workspaces.go‎

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2990,34 +2990,44 @@ func findWorkspaceMembersAndGroups(
29902990
}
29912991
}
29922992

2993+
vareg errgroup.Group
2994+
29932995
// Fetch org members
29942996
iffetchMembers {
2995-
params:= database.OrganizationMembersParams{
2996-
OrganizationID:workspaces[0].OrganizationID,
2997-
}
2998-
members,err:=api.Database.OrganizationMembers(ctx,params)
2999-
iferr!=nil&&!httpapi.Is404Error(err) {
3000-
returnnil,nil,xerrors.Errorf("get organization members: %w",err)
3001-
}
3002-
memberData=make(map[uuid.UUID]database.OrganizationMembersRow,len(members))
3003-
for_,member:=rangemembers {
3004-
memberData[member.OrganizationMember.UserID]=member
3005-
}
2997+
eg.Go(func() (errerror) {
2998+
params:= database.OrganizationMembersParams{
2999+
OrganizationID:workspaces[0].OrganizationID,
3000+
}
3001+
members,err:=api.Database.OrganizationMembers(ctx,params)
3002+
iferr!=nil&&!httpapi.Is404Error(err) {
3003+
returnxerrors.Errorf("get organization members: %w",err)
3004+
}
3005+
memberData=make(map[uuid.UUID]database.OrganizationMembersRow,len(members))
3006+
for_,member:=rangemembers {
3007+
memberData[member.OrganizationMember.UserID]=member
3008+
}
3009+
returnnil
3010+
})
30063011
}
3007-
30083012
// Fetch the groups
3009-
ifgroupIDs!=nil {
3010-
groupIDs=slice.Unique(groupIDs)
3013+
iflen(groupIDs)>0 {
3014+
eg.Go(func() (errerror) {
3015+
groupIDs=slice.Unique(groupIDs)
30113016

3012-
groupRows,err:=api.Database.GetGroups(ctx, database.GetGroupsParams{GroupIds:groupIDs})
3013-
iferr!=nil&&!httpapi.Is404Error(err) {
3014-
returnnil,nil,xerrors.Errorf("get groups: %w",err)
3015-
}
3017+
groupRows,err:=api.Database.GetGroups(ctx, database.GetGroupsParams{GroupIds:groupIDs})
3018+
iferr!=nil&&!httpapi.Is404Error(err) {
3019+
returnxerrors.Errorf("get groups: %w",err)
3020+
}
30163021

3017-
groupData=make(map[uuid.UUID]database.Group,len(groupIDs))
3018-
for_,groupRow:=rangegroupRows {
3019-
groupData[groupRow.Group.ID]=groupRow.Group
3020-
}
3022+
groupData=make(map[uuid.UUID]database.Group,len(groupIDs))
3023+
for_,groupRow:=rangegroupRows {
3024+
groupData[groupRow.Group.ID]=groupRow.Group
3025+
}
3026+
returnnil
3027+
})
3028+
}
3029+
iferr:=eg.Wait();err!=nil {
3030+
returnnil,nil,err
30213031
}
30223032

30233033
returnmemberData,groupData,nil

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp