私には大きな問題があります:サーバーのルーターにハードウェアの問題があるようですmy python software on on。データベースへの接続は約3回ごとに成功します。 .connect()は、タイムアウト例外を受け取るまでに最大5分かかります。
2014-12-23 15:03:12,461 - ERROR - could not connect to server: Connection timed out
Is the server running on Host "172.20.19.1" and accepting
それが私が使用しているコードです。
# Connection to the DB
try:
db = psycopg2.connect(Host=dhost, database=ddatabase,
user=duser, password=dpassword)
cursor = db.cursor(cursor_factory=psycopg2.extras.DictCursor)
except psycopg2.DatabaseError, err:
print(str(err))
logging.error(str(err))
logging.info('program terminated')
sys.exit(1)
クエリにタイムアウトをいくつか追加しようとしましたが、接続がまったく確立されなかったため、それは役に立ちませんでした。
接続を確立できなかったときにすぐにプログラムを停止する方法はありますか?
connect
関数にキーワード引数構文を使用する場合、libpd
でサポートされる接続パラメーターのいずれかを使用できます。それらの中にはconnect_timeout
すぐに:
db = psycopg2.connect (
Host=dhost, database=ddatabase,
user=duser, password=dpassword,
connect_timeout=3
)
http://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS
http://initd.org/psycopg/docs/module.html
接続タイムアウトにより OperationalError
例外が発生します。