node-postgresのタイムアウト的な
node-postgresでPostgreSQLにアクセスしてレコードを出力するコードを書いたのだけど。
var pg = require('pg'); pg.connect('', function(err, client) { if (err) throw err; client.query('SELECT * FROM temp LIMIT 1', function(err, result) { if (err) throw err; console.dir(result.rows[0]); }); });
$ node index.js { id: 1, name: 'sasaplus1' } (しばらくプロンプトが戻って来ない)
タイムアウトの値がデフォルトだと30秒?に設定されてるらしくて戻って来ないみたい。
pg.defaults.poolIdleTimeout = 500;
とかにするとすぐに戻ってくる。
まあ、実際はこんなにタイムアウトを短くしないだろうし、pg.connectで受け取ったClientは内部で適当に管理してくれてるらしいし、client.end()呼ばないでそのまま他のコールバック呼んでいけば、いつの間にか切断されてる、って感じになるのかな。