Don't await profile fetches without changes
This commit is contained in:
20
ts/groups.ts
20
ts/groups.ts
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user