2015-10-27 44 views
2

在我的節點應用程序中,我使用了express + postgresql。對於postgresql我使用'pg'模塊..Node.js + postgresql中的過時連接

考慮我的postgresql重新啓動,然後管道(連接)postgresql連接中斷,我的應用程序無法正常工作。我必須重新啓動我的應用程序才能正常工作。

我該如何避免重新啓動並使pg模塊自動重新連接。我想我正在談論"Stale Connection"。請分享你的想法。

我的連接字符串:

var conString = 'postgres://' + configPostgres.username + ':' + configPostgres.password + '@' + configPostgres.host + '/'+configPostgres.dbname; 

var pgclient; 
pg.connect(conString, function(err, client, done) { 
    if(err){ 
     logger.info("In pgconnect"); 
     logger.error(err.stack); 
     return; 
    } else { 
     pgclient = client; 
    } 
}); 
+0

您應該創建一個連接池:http://blog.argteam.com/coding/connection-pooling-with-node-postgres/ –

回答

0

檢測連接問題,並釋放應用程序池,通過調用pg.end()

這將釋放所有的數據庫連接,並在同一時間連接池,所以下次你請致電.connect它將重新初始化池並嘗試再次創建物理連接。