mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-16 18:56:15 +01:00
perf: increase batch size for notifs, run parallel
This commit is contained in:
@@ -148,7 +148,7 @@ Notifications.push = async function (notification, uids) {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
batch.processArray(uids, async (uids) => {
|
batch.processArray(uids, async (uids) => {
|
||||||
await pushToUids(uids, notification);
|
await pushToUids(uids, notification);
|
||||||
}, { interval: 1000 }, (err) => {
|
}, { interval: 1000, batch: 500 }, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error(err.stack);
|
winston.error(err.stack);
|
||||||
}
|
}
|
||||||
@@ -164,8 +164,10 @@ async function pushToUids(uids, notification) {
|
|||||||
const cutoff = Date.now() - notificationPruneCutoff;
|
const cutoff = Date.now() - notificationPruneCutoff;
|
||||||
const unreadKeys = uids.map(uid => `uid:${uid}:notifications:unread`);
|
const unreadKeys = uids.map(uid => `uid:${uid}:notifications:unread`);
|
||||||
const readKeys = uids.map(uid => `uid:${uid}:notifications:read`);
|
const readKeys = uids.map(uid => `uid:${uid}:notifications:read`);
|
||||||
await db.sortedSetsAdd(unreadKeys, notification.datetime, notification.nid);
|
await Promise.all([
|
||||||
await db.sortedSetsRemove(readKeys, notification.nid);
|
db.sortedSetsAdd(unreadKeys, notification.datetime, notification.nid),
|
||||||
|
db.sortedSetsRemove(readKeys, notification.nid),
|
||||||
|
]);
|
||||||
await db.sortedSetsRemoveRangeByScore(unreadKeys.concat(readKeys), '-inf', cutoff);
|
await db.sortedSetsRemoveRangeByScore(unreadKeys.concat(readKeys), '-inf', cutoff);
|
||||||
const websockets = require('./socket.io');
|
const websockets = require('./socket.io');
|
||||||
if (websockets.server) {
|
if (websockets.server) {
|
||||||
|
|||||||
Reference in New Issue
Block a user