2013-01-04 4 views
4

Postgres 데이터베이스에 연결되어 있고 쿼리를 실행 한 다음 사용자에게 데이터를 닫고 반환하는 루비 스크립트가 있습니다.잘못된 PG 연결 호출시 Ruby 스크립트가 응답하지 않습니다

스크립트는 정상적으로 작동하지만 잘못된 호스트 이름을 지정하면 전체 스크립트가 멈추고 Ctrl-Z를 눌러야합니다. 이 문제를 해결하기 위해 포스트 퀘스트에 대한 libpq 백엔드를 조사해야하지만, 루비 스크립트로 모든 것을 감싸는 방법에 대해서는별로 상실감이 있습니다. 나는 포스트 그레스 물건을 처리하기 위해 Ruby 1.8pg gem을 사용하고, 연결을 열고 전화 :

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

(옵션과 TTY 그냥 빈 문자열)

어떤 도움/팁/제안은 좋은 것! STRING connection_string = "호스트 = YOUR_HOST 포트 = YOUR_PORT connect_timeout = YOUR_TIMEOUT 기간" PGconn.connect

PGconn.connect도 더 서비스를 제공합니다 (connection_string)를 사용 : 당신이 같이 할 수 있도록

+0

에 대한 문서의 일부입니다. 당신은 TCP 타임 아웃을 기다리고 있습니다. – derobert

+0

DB 연결을 관리하기 위해 [Sequel] (http://sequel.rubyforge.org/)을 사용하는 것이 좋습니다. 그것은 삶을 훨씬 쉽게 만듭니다. 얼마나 잘하는 지 맛볼 수있는 [Cheatsheet] (http://sequel.rubyforge.org/rdoc/files/doc/cheat_sheet_rdoc.html)를 확인하십시오. –

답변

2

connect_timeout 옵션이 있습니다 rubyesque 해시 표기

: 호스트 => YOU_HOST : 포트 => YOUR_PORT : connect_timeout => YOUR_TIMEOUT_PERIOD

코드의 나머지 부분을 연결하면 실행되지 않도록 또한 당신은 시작 구출이 포장 할 수 있습니다 시간 초과

면책 조항 : 나는 실제로 시험하지 않았다 그러나 그것은 2 분 후 시간이 초과해야하는 페이지 보석

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

관련 문제