chore: run save operatons in parallel where possible

This commit is contained in:
Sainan 2025-03-31 03:18:43 +02:00
parent 054abee62c
commit 8659928dca
4 changed files with 21 additions and 13 deletions

View File

@ -64,9 +64,11 @@ export const contributeToDojoComponentController: RequestHandler = async (req, r
} }
} }
await guild.save(); await Promise.all([
await inventory.save(); guild.save(),
await guildMember.save(); inventory.save(),
guildMember.save(),
]);
res.json({ res.json({
...(await getDojoClient(guild, 0, component._id)), ...(await getDojoClient(guild, 0, component._id)),
InventoryChanges: inventoryChanges InventoryChanges: inventoryChanges

View File

@ -52,9 +52,11 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
} }
} }
await guild.save(); await Promise.all([
await inventory.save(); guild.save(),
await guildMember.save(); inventory.save(),
guildMember.save(),
]);
res.end(); res.end();
}; };

View File

@ -47,13 +47,15 @@ export const dojoComponentRushController: RequestHandler = async (req, res) => {
} }
} }
await guild.save();
await inventory.save();
const guildMember = (await GuildMember.findOne({ accountId, guildId: guild._id }, "PremiumCreditsContributed"))!; const guildMember = (await GuildMember.findOne({ accountId, guildId: guild._id }, "PremiumCreditsContributed"))!;
guildMember.PremiumCreditsContributed ??= 0; guildMember.PremiumCreditsContributed ??= 0;
guildMember.PremiumCreditsContributed += request.Amount; guildMember.PremiumCreditsContributed += request.Amount;
await guildMember.save();
await Promise.all([
guild.save(),
inventory.save(),
guildMember.save(),
]);
res.json({ res.json({
...(await getDojoClient(guild, 0, component._id)), ...(await getDojoClient(guild, 0, component._id)),

View File

@ -157,9 +157,11 @@ export const guildTechController: RequestHandler = async (req, res) => {
// Check if research is fully funded now. // Check if research is fully funded now.
await processGuildTechProjectContributionsUpdate(guild, techProject); await processGuildTechProjectContributionsUpdate(guild, techProject);
await guild.save(); await Promise.all([
await inventory.save(); guild.save(),
await guildMember.save(); inventory.save(),
guildMember.save(),
]);
res.json({ res.json({
InventoryChanges: inventoryChanges, InventoryChanges: inventoryChanges,
Vault: getGuildVault(guild) Vault: getGuildVault(guild)