mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +01:00 
			
		
		
		
	Merge branch 'redis-optimizations' of https://github.com/adarqui/NodeBB into adarqui-redis-optimizations
This commit is contained in:
		
							
								
								
									
										56
									
								
								src/posts.js
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								src/posts.js
									
									
									
									
									
								
							| @@ -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)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user