在生产中以这种方式使用setTimeout有多安全?

时间:2015-01-18 10:38:13

标签: javascript node.js settimeout

为了应对Mongo不支持原子多文档事务的事实,我试图以这种方式实现配置文件删除:

  1. 当用户要求删除其个人资料时,我会从Mongo中删除用户文档并告诉用户该个人资料已被删除;
  2. 我调用下面的函数删除所有帖子(在向用户发送回复后)
  3. 为了确保(最终)删除所有帖子 - 尽管有错误 - 我使用setTimeout如下:

        var removePosts =function(authorId,cb){
            var remove= function(){
               Post.find({'author':authorId}).remove(function(err){
                if(err){
                      logger.error(err);   
                      setTimeout(remove,25000);
                }else{
                   cb();
                }
               });
            };      
            remove();
        };
    

    在开发中它似乎有效。但它在生产中有多安全?我应该期待任何WTF吗? 谢谢!

0 个答案:

没有答案