Merge branch 'redis-optimizations' of https://github.com/adarqui/NodeBB into adarqui-redis-optimizations

This commit is contained in:
Julian Lam
2013-09-27 11:44:40 -04:00
3 changed files with 66 additions and 3 deletions

View File

@@ -153,7 +153,61 @@ var RDB = require('./redis.js'),
}
/* getPostsByPids using redis's multi pipeline */
Posts.getPostsByPids = function(pids, callback) {
var posts = []
var multi = RDB.multi();
for (v in pids) {
var _pid = pids[v]
multi.hgetall("post:"+_pid);
}
multi.exec(function (err, replies) {
async.eachSeries(replies, function(postData, _callback) {
if(postData) {
postData.relativeTime = utils.relativeTime(postData.timestamp);
postData.post_rep = postData.reputation;
postData['edited-class'] = postData.editor !== '' ? '' : 'none';
postData['relativeEditTime'] = postData.edited !== '0' ? utils.relativeTime (postData.edited) : '';
if(postData.uploadedImages) {
try {
postData.uploadedImages = JSON.parse(postData.uploadedImages);
} catch(err) {
postData.uploadedImages = [];
winston.err(err);
}
} else {
postData.uploadedImages = [];
}
postTools.toHTML(postData.content, function(err, content) {
postData.content = content;
posts.push(postData);
});
return _callback(null)
}
else {
return _callback(null)
}
}, function(err) {
if(!err) {
return callback(null, posts);
} else {
return callback(err, null);
}
});
})
}
Posts.getPostsByPids_original = function(pids, callback) {
var posts = [];
async.eachSeries(pids, function(pid, callback) {
@@ -432,4 +486,4 @@ var RDB = require('./redis.js'),
});
}
}(exports));
}(exports));