node定时处理数据

场景:当一条数据创建成功后,定时去判断修改更新该条数据

testModel.create({name:'a',num:2},function(err,doc){
if(doc){
setTimeout(do,gettime())
function do(){
 判读update数据库
}
}
})

express框架使用mongoose连接mongodb,请问实际生产环境,用setTimeout,setInterval是否可行,当然node也有定时许多模块,大家是如何处理像上面定时任务?

阅读 1.5k
1 个回答

setTimeout和setInterval可行,但是不够好。

可以额外写一个UpdateTsk 组件 ,该组件内部维护一个需要定时执行的函数数组
例如UpdateTsk.reg(CallBack_Func)等形式注册,然后由该组件自行定时定周期去调用列表中的所有callback_Func

如果是setTimeout和setInterval,到最后可能程序里就几千上万个定时器了,对效率有一定影响

推荐问题