fix(account): resilient orgs fetch (#16944)
This commit is contained in:
parent
1b6820bab5
commit
a1b06d63c9
1 changed files with 7 additions and 1 deletions
|
|
@ -192,11 +192,17 @@ export class AccountService extends ServiceMap.Service<
|
||||||
|
|
||||||
const orgsByAccount = Effect.fn("AccountService.orgsByAccount")(function* () {
|
const orgsByAccount = Effect.fn("AccountService.orgsByAccount")(function* () {
|
||||||
const accounts = yield* repo.list()
|
const accounts = yield* repo.list()
|
||||||
return yield* Effect.forEach(
|
const [errors, results] = yield* Effect.partition(
|
||||||
accounts,
|
accounts,
|
||||||
(account) => orgs(account.id).pipe(Effect.map((orgs) => ({ account, orgs }))),
|
(account) => orgs(account.id).pipe(Effect.map((orgs) => ({ account, orgs }))),
|
||||||
{ concurrency: 3 },
|
{ concurrency: 3 },
|
||||||
)
|
)
|
||||||
|
for (const error of errors) {
|
||||||
|
yield* Effect.logWarning("failed to fetch orgs for account").pipe(
|
||||||
|
Effect.annotateLogs({ error: String(error) }),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return results
|
||||||
})
|
})
|
||||||
|
|
||||||
const orgs = Effect.fn("AccountService.orgs")(function* (accountID: AccountID) {
|
const orgs = Effect.fn("AccountService.orgs")(function* (accountID: AccountID) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue