小游戏需求是,用户点击按钮,调取api接口,会判断用户等级和怪物等级,然后延时半小时去写入数据库。
伪代码如下
// 获取用户level
getUserLevel(req.id, data =>{
res.send({code: 0,msg: "正在打怪..."})
//获取到level后, 延时半小时写入数据库
setTimeout(()=> {
//执行打怪兽逻辑,更新用户信息
updateUserLevel(req2, data2=> {})
}, 1800000)
})
我一个朋友说延时操作不能用setTimeOut,人一多进程无法释放,会蹦的
请问延时任务正确的写法应该是怎么样的?
改变思路,点击后就对比等级判断战胜或战败,只是不显示在页面上,将判断时间和现在时间做对比,半小时后再显示