BAE上连接mongodb每隔十多小时就不能连接的有关问题(二)

BAE上连接mongodb每隔十多小时就不能连接的问题(二)

    前段时间写了《BAE上连接mongodb每隔十多小时就不能连接的问题(一)》之后暂时的解决了连不上的问题,每隔十小时重启一次,但是这个方法却没有彻底解决问题,偶尔还会出现三四小时就连不上,实在搞不懂问题到底出在哪,到底是bae的mongodb的问题还是mongoose中间件的问题,现象是有做open操作,但是却没有open事件发出,那么我想是不是mongoose存在bug,翻看了源码也没看出来个所以然,不过大概是觉得要重新打开需要保证连接已经关闭的,那么干脆在监听到error事件时就将状态直接改为disconnected,反正是要调用db.close()方法进行关闭连接的,可能close()方法不好使,没有完全关闭,如果我手动将状态设为disconnected,close方法中也会判断是否是这个状态,如果是就直接返回,省的多走其他步骤了。不过这样一来就不会有close事件发出了,根据我所写代码的逻辑,那就不会调用open()方法了,但实际情况确实程序可以正常运行,说明已经重连上了,原来有这个属性:

var opts = {
    db: {
      native_parser: true
    },
    server: {
      poolSize:4,
      auto_reconnect: true
    },
    user: username,
    pass: password
  };

 上面的红色字体,只能说是可能这个参数起作用了。

      最终会不会好用还有待考验,反正是很坑爹。