Don't await profile fetches without changes

This commit is contained in:
Fedor Indutny 2022-03-28 16:05:47 -07:00 committed by GitHub
parent 1ad284d22c
commit 03173a31da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2942,6 +2942,7 @@ async function updateGroup(
} }
}); });
let profileFetches: Promise<Array<void>> | undefined;
if (contactsWithoutProfileKey.length !== 0) { if (contactsWithoutProfileKey.length !== 0) {
log.info( log.info(
`updateGroup/${logId}: fetching ` + `updateGroup/${logId}: fetching ` +
@ -2951,22 +2952,23 @@ async function updateGroup(
const profileFetchQueue = new PQueue({ const profileFetchQueue = new PQueue({
concurrency: 3, concurrency: 3,
}); });
profileFetches = profileFetchQueue.addAll(
contactsWithoutProfileKey.map(contact => () => {
const active = contact.getActiveProfileFetch();
return active || contact.getProfiles();
})
);
}
if (changeMessagesToSave.length > 0) {
try { try {
await profileFetchQueue.addAll( await profileFetches;
contactsWithoutProfileKey.map(contact => () => {
const active = contact.getActiveProfileFetch();
return active || contact.getProfiles();
})
);
} catch (error) { } catch (error) {
log.error( log.error(
`updateGroup/${logId}: failed to fetch missing profiles`, `updateGroup/${logId}: failed to fetch missing profiles`,
Errors.toLogFormat(error) Errors.toLogFormat(error)
); );
} }
}
if (changeMessagesToSave.length > 0) {
await appendChangeMessages(conversation, changeMessagesToSave); await appendChangeMessages(conversation, changeMessagesToSave);
} }