mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +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