forked from jun-lu/webchat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtimingTask24.js
67 lines (48 loc) · 1.18 KB
/
timingTask24.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
每天24时执行脚本
此脚本用于关闭24小时内没有任何新对话的话题。
*/
var Promise = require("./lib/Promise")
var RoomModel = require("./lib/RoomModel");
var ChatModel = require("./lib/ChatModel");
var promise = new Promise();
//话题查询
promise.then(function(){
RoomModel.find({"$or":[{status:1},{status:null}]}, function( status ){
if( status.code == 0 && status.result.length > 0 ){
promise.ok( status );
}
});
});
//时间比较
promise.then(function( status ){
var list = status.result;
var i=0;
var now = parseInt(Date.now()/1000);
function start(){
if(++i < list.length){
console.log("topic, id", list[i].topic, list[i].id);
compareTime( list[i].id )
}else{
console.log("完成");
}
}
function compareTime( id ){
ChatModel.findSort({roomid:String(id)}, {time:-1}, function( status ){
//48小时未更新
if( (status.code == 0 &&
status.result[0] &&
now - status.result[0].time > 60*60*24*2) ||
status.code == 404){
console.log("close", id);
RoomModel.update({id:String(id)}, {status:0}, function(){
start();
});
}else{
start();
}
});
}
start();
});
promise.start();