mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
perf: closes #9994, bulk methods for settings
This commit is contained in:
@@ -69,16 +69,21 @@ Settings.set = async function (hash, values, quiet) {
|
|||||||
await db.deleteAll(deleteKeys);
|
await db.deleteAll(deleteKeys);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const ops = [];
|
const sortedSetData = [];
|
||||||
|
const objectData = { keys: [], data: [] };
|
||||||
sortedLists.forEach((list) => {
|
sortedLists.forEach((list) => {
|
||||||
const arr = sortedListData[list];
|
const arr = sortedListData[list];
|
||||||
arr.forEach((data, order) => {
|
arr.forEach((data, order) => {
|
||||||
ops.push(db.sortedSetAdd(`settings:${hash}:sorted-list:${list}`, order, order));
|
sortedSetData.push([`settings:${hash}:sorted-list:${list}`, order, order]);
|
||||||
ops.push(db.setObject(`settings:${hash}:sorted-list:${list}:${order}`, data));
|
objectData.keys.push(`settings:${hash}:sorted-list:${list}:${order}`);
|
||||||
|
objectData.data.push(data);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
await Promise.all(ops);
|
await Promise.all([
|
||||||
|
db.sortedSetAddBulk(sortedSetData),
|
||||||
|
db.setObjectBulk(objectData.keys, objectData.data),
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(values).length) {
|
if (Object.keys(values).length) {
|
||||||
|
|||||||
Reference in New Issue
Block a user