send more requests to mongodb secondaries

pull/2850/head
Thibault Duplessis 2017-03-25 12:23:01 +01:00
parent eba9d81a03
commit 6d782fa50e
5 changed files with 8 additions and 8 deletions

View File

@ -105,7 +105,7 @@ object Relation extends LilaController {
)
private def followship(userIds: Seq[String])(implicit ctx: Context): Fu[List[Related]] =
UserRepo byOrderedIds userIds.map(UserModel.normalize) flatMap { users =>
UserRepo usersFromSecondary userIds.map(UserModel.normalize) flatMap { users =>
(ctx.isAuth ?? { Env.pref.api.followableIds(users map (_.id)) }) flatMap { followables =>
users.map { u =>
ctx.userId ?? { env.api.fetchRelation(_, u.id) } map { rel =>

View File

@ -25,7 +25,7 @@ final class UserSearch(
else searchUsername(query)
private def searchIp(ip: String) =
securityApi recentUserIdsByIp ip map (_.reverse) flatMap UserRepo.byOrderedIds
securityApi recentUserIdsByIp ip map (_.reverse) flatMap UserRepo.usersFromSecondary
private def searchUsername(username: String) = UserRepo named username map (_.toList)

View File

@ -37,7 +37,7 @@ private[team] final class PaginatorBuilder(
def slice(offset: Int, length: Int): Fu[Seq[MemberWithUser]] = for {
members coll.member.find(selector)
.sort(sorting).skip(offset).cursor[Member]().gather[List](length)
users UserRepo byOrderedIds members.map(_.user)
users UserRepo usersFromSecondary members.map(_.user)
} yield members zip users map {
case (member, user) => MemberWithUser(member, user)
}

View File

@ -66,7 +66,7 @@ final class TeamApi(
def requestsWithUsers(team: Team): Fu[List[RequestWithUser]] = for {
requests RequestRepo findByTeam team.id
users UserRepo byOrderedIds requests.map(_.user)
users UserRepo usersFromSecondary requests.map(_.user)
} yield requests zip users map {
case (request, user) => RequestWithUser(request, user)
}
@ -74,7 +74,7 @@ final class TeamApi(
def requestsWithUsers(user: User): Fu[List[RequestWithUser]] = for {
teamIds TeamRepo teamIdsByCreator user.id
requests RequestRepo findByTeams teamIds
users UserRepo byOrderedIds requests.map(_.user)
users UserRepo usersFromSecondary requests.map(_.user)
} yield requests zip users map {
case (request, user) => RequestWithUser(request, user)
}

View File

@ -46,8 +46,8 @@ object UserRepo {
y.??(yy => users.find(_.id == yy))
}
def byOrderedIds(ids: Seq[ID]): Fu[List[User]] =
coll.byOrderedIds[User, User.ID](ids)(_.id)
def byOrderedIds(ids: Seq[ID], readPreference: ReadPreference): Fu[List[User]] =
coll.byOrderedIds[User, User.ID](ids, readPreference)(_.id)
def enabledByIds(ids: Iterable[ID]): Fu[List[User]] =
coll.list[User](enabledSelect ++ $inIds(ids), ReadPreference.secondaryPreferred)
@ -79,7 +79,7 @@ object UserRepo {
}
def usersFromSecondary(userIds: Seq[ID]): Fu[List[User]] =
coll.byOrderedIds[User, User.ID](userIds, readPreference = ReadPreference.secondaryPreferred)(_.id)
byOrderedIds(userIds, ReadPreference.secondaryPreferred)
private[user] def allSortToints(nb: Int) =
coll.find($empty).sort($sort desc F.toints).cursor[User]().gather[List](nb)