4

Postgresデータベースに接続し、いくつかのクエリを実行してから、ユーザーにデータを閉じる/返すRubyスクリプトがあります。

スクリプトは正常に動作しますが、不適切なホスト名を指定すると、スクリプト全体がハングするので、ctrl-Z で終了する必要があります。これを回避するには、postgres のバックエンドを調べる必要があることはわかっていますが、libpqそれをすべて自分の Ruby スクリプトにラップする方法についてはかなり迷っています。私はpostgres のものを処理するためにRuby 1.8と を使用しており、接続を開くために呼び出します:pg gem

myConnection = PGconn.connect(host,port,pgOptions,pgTTY,name,user,password)

(options と tty は空文字列です)

どんなヘルプ/ヒント/提案も素晴らしいでしょう!

4

1 に答える 1

2

次のようにできる connect_timeout オプションがあります: USING STRING connection_string = "host=YOUR_HOST port=YOUR_PORT connect_timeout=YOUR_TIMEOUT PERIOD" PGconn.connect(connection_string)

PGconn.connect は、よりルビ風のハッシュ表記も提供します。

:host => YOU_HOST, :port => YOUR_PORT, :connect_timeout => YOUR_TIMEOUT_PERIOD

また、接続がタイムアウトした場合にコードの残りの部分が実行されないように、これを開始レスキューでラップすることもできます

免責事項: 私はこれを実際にテストしていませんが、pg gem のドキュメントの一部です。

http://deveiate.org/code/pg/

于 2013-03-06T21:39:46.697 に答える