Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pisns-forum-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
scrmGroup
pisns-forum-api
Commits
7666958f
Commit
7666958f
authored
Jan 26, 2016
by
陈家荣
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
推荐列表增加缓存
parent
7596abfc
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
272 additions
and
71 deletions
+272
-71
forumThread.js
app/controllers/admin/forumThread.js
+6
-1
forumThread.js
app/controllers/mobile/forumThread.js
+137
-70
redisThreadList
app/utils/redisThreadList
+129
-0
No files found.
app/controllers/admin/forumThread.js
View file @
7666958f
...
@@ -23,7 +23,8 @@ var forumThreadService = require('../../service/forumThreadService'),
...
@@ -23,7 +23,8 @@ var forumThreadService = require('../../service/forumThreadService'),
// var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
// var forumLimitActionRefService = require('../../service/forumLimitActionRefService');
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
),
forumLimitOperationService
=
require
(
'../../service/forumLimitOperationService'
),
forumAboutMEService
=
require
(
'../../service/forumAboutMEService'
),
forumAboutMEService
=
require
(
'../../service/forumAboutMEService'
),
httpService
=
require
(
'../../service/httpService'
);
httpService
=
require
(
'../../service/httpService'
),
redisThreadList
=
require
(
'../../utils/redisThreadList'
);
var
userUtil
=
require
(
'../../utils/user'
);
var
userUtil
=
require
(
'../../utils/user'
);
var
floorGenerator
=
require
(
'../../utils/floorGenerator'
);
var
floorGenerator
=
require
(
'../../utils/floorGenerator'
);
...
@@ -1593,6 +1594,8 @@ router.post('/thread/:tid/essence', function(req, res, next) {
...
@@ -1593,6 +1594,8 @@ router.post('/thread/:tid/essence', function(req, res, next) {
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
}
else
{
//更新推荐列表redis
redisThreadList
.
updateRedisEsenceThreads
(
ent_code
,
""
,
'_thread_essence'
,
function
()
{});
res
.
json
(
returnCode
.
SUCCESS
);
res
.
json
(
returnCode
.
SUCCESS
);
}
}
});
});
...
@@ -1619,6 +1622,8 @@ router.post('/thread/:tid/unEssence', function(req, res, next) {
...
@@ -1619,6 +1622,8 @@ router.post('/thread/:tid/unEssence', function(req, res, next) {
console
.
error
(
err
);
console
.
error
(
err
);
res
.
json
(
returnCode
.
BUSY
);
res
.
json
(
returnCode
.
BUSY
);
}
else
{
}
else
{
//更新推荐列表redis
redisThreadList
.
updateRedisEsenceThreads
(
ent_code
,
""
,
'_thread_essence'
,
function
()
{});
res
.
json
(
returnCode
.
SUCCESS
);
res
.
json
(
returnCode
.
SUCCESS
);
}
}
});
});
...
...
app/controllers/mobile/forumThread.js
View file @
7666958f
This diff is collapsed.
Click to expand it.
app/utils/redisThreadList
0 → 100644
View file @
7666958f
'use strict';
var redis=global.redis;
var expire = 60*60*3;
//缓存数量
var ThreadRedisCount = 50;
var _ = require('lodash');
var then = require('thenjs');
var forumThreadService=require('../service/forumThreadService');
var redisPraiseLog=require('./redisPraiseLog');
var util=require('./util');
function getKey(ent_code,keyID,type){
var key = ent_code + keyID + type;
return key;
}
function setToRedis(ent_code,keyID,type,value){
var key = getKey(ent_code,keyID,type);
if(!redis){
console.log('redis error');
return 'error'
}
redis.set(key, value, function(error, res){
redis.expire(key, expire);
return 'success'
});
}
exports.get=function(ent_code,keyID,type,callback){
var key = getKey(ent_code,keyID,type);
if(!redis){
console.log('redis error');
return callback && callback('error');
}
redis.get(key, function(error, res){
if(!res){
//不存在,先获取再返回
getEsenceThreads(ent_code, keyID, type,function(err){
redis.get(key, function(error, res){
return callback && callback(error, res.split(","));
});
});
}else{
return callback && callback(error, res);
}
});
};
exports.set=function(ent_code,keyID,type,value,callback){
var key = getKey(ent_code,keyID,type);
if(!redis){
console.log('redis error');
return callback && callback('error');
}
redis.set(key, value, function(error, res){
redis.expire(key, expire);
return callback && callback(error, 'success');
});
};
exports.clear = function(ent_code,keyID,type,callback){
var key = getKey(ent_code,keyID,type);
if(!redis){
console.log('redis error');
return callback && callback('error');
}
redis.del(key, function(error, res){
return callback && callback(error, !!res);
});
};
function getEsenceThreads(ent_code,keyID,type,callback){
var sort = '-new_recommend_time';
var today = new Date();
var conditions = {
ent_code: ent_code,
level: 1,
status: 1,
new_recommend: 1,
$or: [{
isEvent: 0
}, {
isEvent: null
}, {
isEvent: 1,
'event.eventStartTime' : {$lte : today}
}]
};
forumThreadService.getThreadWithNotPopulateComment(conditions, 1, ThreadRedisCount, sort, function(err, results) {
if (err) {
console.error(err);
callback(err);
} else {
util.loadLevel(ent_code, results.items, function() {
setToRedis(ent_code,keyID,type,JSON.stringify(results));
callback(null);
});
}
});
};
//获取缓存列表
exports.getRedisEsenceThreads = function(ent_code,keyID,type,callback){
var key = getKey(ent_code,keyID,type);
getEsenceThreads(ent_code, keyID,type, function(err){
redis.get(key, function(error, res){
return callback && callback(error, res.split(","));
});
});
};
//更新缓存列表
exports.updateRedisEsenceThreads = function(ent_code,keyID,type,callback){
var key = getKey(ent_code,keyID,type);
getEsenceThreads(ent_code, keyID,type, function(err){
callback();
});
};
//获取缓存数值
exports.getThreadRedisCount = function(){
// callback(ThreadRedisCount);
return ThreadRedisCount;
};
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment