我有一个Ruby脚本,它连接到postgres数据库,运行一些查询,然后关闭/返回给用户的数据。
脚本工作正常,但是如果我给它一个错误的主机名,整个脚本就会挂起,我必须从中调出ctrl-Z。我知道要解决这个问题,我需要查看postgres的libpq
后端,但我对如何将其全部包含在我的ruby脚本中感到很遗憾。
我正在使用Ruby 1.8
和pg gem
处理postgres的内容,请致电开放式连接:
myConnection = PGconn.connect(host,port,pgOptions,pgTTY,name,user,password)
(options和tty只是空字符串)
任何帮助/提示/建议都会很棒!
答案 0 :(得分:2)
有一个connect_timeout选项,您可以这样做:使用STRING connection_string =“host = YOUR_HOST port = YOUR_PORT connect_timeout = YOUR_TIMEOUT PERIOD” PGconn.connect(connection_string)
PGconn.connect还提供了更多rubyesque哈希表示法
:host => YOU_HOST,:port => YOUR_PORT,:connect_timeout => YOUR_TIMEOUT_PERIOD
此外,您可以将其包装在开始救援中,以便在连接超时时不会运行其余代码
免责声明:我实际上没有对此进行测试,但它是pg gem文档的一部分