Commit a7c5dd9afd3e0758a15ff5970762a502a4df4bdd
1 parent
f4bd0da0
Exists in
master
提交
Showing
2 changed files
with
38 additions
and
20 deletions
Show diff stats
src/HttpServer/logic/function.go
... | ... | @@ -1310,7 +1310,8 @@ func GetRandChatMessage() string { |
1310 | 1310 | return RandChatList[index] |
1311 | 1311 | } |
1312 | 1312 | |
1313 | -func HandleRandWorldChat() { | |
1313 | +func HandleRandWorldChat(ntime int) { | |
1314 | + isInsert := false | |
1314 | 1315 | length, err := redishandler.GetRedisClient().LLen(redis.WORLD_CHAT_INFO_KEY) |
1315 | 1316 | if err == nil { |
1316 | 1317 | if length >= CHATLIMITNUM { |
... | ... | @@ -1325,24 +1326,43 @@ func HandleRandWorldChat() { |
1325 | 1326 | } |
1326 | 1327 | } |
1327 | 1328 | |
1328 | - //构建新的结构 | |
1329 | - var chats QueryChatMessageData | |
1330 | - chats.Message = GetRandChatMessage() | |
1331 | - chats.Uuid = -1 | |
1332 | - chats.Chattime = int(time.Now().Unix()) | |
1333 | - | |
1334 | - chats.Headurl = "" | |
1335 | - chats.Nickname = "" | |
1336 | - chats.Sex = 1 | |
1329 | + //如果小于五条则插入 | |
1330 | + if length < 5 { | |
1331 | + isInsert = true | |
1332 | + } | |
1337 | 1333 | |
1338 | - savestr, err := json.Marshal(&chats) | |
1339 | - if err != nil { | |
1340 | - logger.Error("WorldChat err=%v", err) | |
1334 | + //判断最后一条记录 | |
1335 | + laststr, err := redishandler.GetRedisClient().LIndex(redis.WORLD_CHAT_INFO_KEY, 0) | |
1336 | + if err != nil && laststr != "" { | |
1337 | + var tmp QueryChatMessageData | |
1338 | + err = json.Unmarshal([]byte(laststr), &tmp) | |
1339 | + if err == nil { | |
1340 | + if ntime-tmp.Chattime > 20*60 { | |
1341 | + isInsert = true | |
1342 | + } | |
1343 | + } | |
1341 | 1344 | } |
1345 | + if isInsert { | |
1346 | + //构建新的结构 | |
1347 | + var chats QueryChatMessageData | |
1348 | + chats.Message = GetRandChatMessage() | |
1349 | + chats.Uuid = -1 | |
1350 | + chats.Chattime = int(time.Now().Unix()) | |
1342 | 1351 | |
1343 | - logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) | |
1344 | - err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) | |
1345 | - if err != nil { | |
1346 | - logger.Error("WorldChat err=%v", err) | |
1352 | + chats.Headurl = "" | |
1353 | + chats.Nickname = "" | |
1354 | + chats.Sex = 1 | |
1355 | + | |
1356 | + savestr, err := json.Marshal(&chats) | |
1357 | + if err != nil { | |
1358 | + logger.Error("WorldChat err=%v", err) | |
1359 | + } | |
1360 | + | |
1361 | + logger.Info("HandleRandWorldChat length=%v,chats=%v", length, chats) | |
1362 | + err = redishandler.GetRedisClient().LPush(redis.WORLD_CHAT_INFO_KEY, string(savestr)) | |
1363 | + if err != nil { | |
1364 | + logger.Error("WorldChat err=%v", err) | |
1365 | + } | |
1347 | 1366 | } |
1367 | + | |
1348 | 1368 | } | ... | ... |
src/HttpServer/logic/httpserver.go
... | ... | @@ -29,9 +29,7 @@ func StartHttpTicker() { |
29 | 29 | if hour >= 6 && hour <= 22 { |
30 | 30 | if nowtime-gLastChatTime >= 20*60 { |
31 | 31 | gLastChatTime = nowtime |
32 | - HandleRandWorldChat() | |
33 | - } else { | |
34 | - logger.Info("StartHttpTicker gLastChatTime=%v %v", gLastChatTime, nowtime) | |
32 | + HandleRandWorldChat(nowtime) | |
35 | 33 | } |
36 | 34 | |
37 | 35 | } | ... | ... |