diff --git a/src/categories/topics.js b/src/categories/topics.js index c60050c667..ea75ab16a5 100644 --- a/src/categories/topics.js +++ b/src/categories/topics.js @@ -111,7 +111,7 @@ module.exports = function (Categories) { Categories.onNewPostMade = function (cid, pinned, postData, callback) { if (!cid || !postData) { - return callback(); + return setImmediate(callback); } async.parallel([ @@ -123,17 +123,23 @@ module.exports = function (Categories) { }, function (next) { if (parseInt(pinned, 10) === 1) { - next(); - } else { - db.sortedSetAdd('cid:' + cid + ':tids', postData.timestamp, postData.tid, next); + return setImmediate(next); } + + async.parallel([ + function (next) { + db.sortedSetAdd('cid:' + cid + ':tids', postData.timestamp, postData.tid, next); + }, + function (next) { + db.sortedSetIncrBy('cid:' + cid + ':tids:posts', 1, postData.tid, next); + } + ], function (err) { + next(err); + }); }, function (next) { Categories.updateRecentTid(cid, postData.tid, next); - }, - function (next) { - db.sortedSetIncrBy('cid:' + cid + ':tids:posts', 1, postData.tid, next); - } + } ], callback); }; diff --git a/src/topics/tools.js b/src/topics/tools.js index 377b3bdfcd..28d5cd42d4 100644 --- a/src/topics/tools.js +++ b/src/topics/tools.js @@ -184,13 +184,13 @@ module.exports = function (Topics) { async.parallel([ async.apply(db.sortedSetAdd, 'cid:' + topicData.cid + ':tids:pinned', Date.now(), tid), async.apply(db.sortedSetRemove, 'cid:' + topicData.cid + ':tids', tid), - async.apply(db.sortedSetRemove, 'cid:' + topicData.cid + ':tids:posts', tid), + async.apply(db.sortedSetRemove, 'cid:' + topicData.cid + ':tids:posts', tid) ], next); } else { async.parallel([ async.apply(db.sortedSetRemove, 'cid:' + topicData.cid + ':tids:pinned', tid), async.apply(db.sortedSetAdd, 'cid:' + topicData.cid + ':tids', topicData.lastposttime, tid), - async.apply(db.sortedSetAdd, 'cid:' + topicData.cid + ':tids:posts', topicData.postcount, tid), + async.apply(db.sortedSetAdd, 'cid:' + topicData.cid + ':tids:posts', topicData.postcount, tid) ], next); } }