搜尋

首頁  >  問答  >  主體

javascript - mongoose在百度bae長連線中遇到的問題

百度bae mongodb不支援長連接,所要進行重連機制。我看網上別人用mongoose.createConnection(),可是我用createConnection()就會報錯,根本連不了
但是mongoose.connect()是可以連接的,所以我就寫了一個mongoose.connect()重連版本
`var db = mongoose.connection;
db.on('error',function(error){

mongoose.disconnect();

})
db.on('disconnected', function() {

mongoose.connect(config.mongo, {server:{auto_reconnect:true,poolSize:10}});

});
mongoose.connect(config.mongo, {server:{auto_reconnect:true,poolSize:10}});`
裡面的configh.mongo是連接資料庫的url!
請問大家怎麼解決這個問題呢

滿天的星座滿天的星座2764 天前1085

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-05-31 10:38:10

    1、問題:可是我用createConnection()就會報錯,根本連不了。

    var conn = mongoose.createConnection('your connection string'),
        MyModel = conn.model('ModelName', schema),
        m = new MyModel;
        m.save(); // works
    

    使用createConnection的時候,不能用mongoose.model,請參考上面的栗子。

    2、百度bae支援60分鐘的連接,應該夠用了吧。

    引用的官網資訊:公有MongoDB連線建立後如果連續空閒1小時無任何活動,將會被伺服器端斷開連線。如果在並發連線數已達到配額上限的情況下再發起建立新連線請求,伺服器端將會在已有連線中查找是否有空閒30秒以上的,如果有則斷開最近最不活躍(Least Recently Used )的一個連線並接受新連線請求;否則拒絕新連線請求。請您注意在應用程式碼中處理長時間空閒MongoDB連線將會被斷開的問題。

    供參考。

    Love MongoDB! Have fun!


    2017MongoDB中文社群北京用戶組大會在即,2017年6月3日 13:00-18:00

    趕緊報名參加吧! Click Me

    回覆
    0
  • 取消回覆