データベースにアクセスする必要がある RESTful API を作成しています。Restish、Oracle、および SQLAlchemy を使用しています。ただし、Restish やその他の Web API を考慮せずに、できるだけ一般的に質問を組み立てようとします。
クエリを実行する接続のタイムアウトを設定できるようにしたいと考えています。これは、実行時間の長いクエリが破棄され、接続が破棄 (またはリサイクル) されるようにするためです。このクエリ タイムアウトはグローバル値にすることができます。つまり、クエリまたは接続の作成ごとに変更する必要はありません。
次のコードがあるとします。
import cx_Oracle
import sqlalchemy.pool as pool
conn_pool = pool.manage(cx_Oracle)
conn = conn_pool.connect("username/p4ss@dbname")
conn.ping()
try:
cursor = conn.cursor()
cursor.execute("SELECT * FROM really_slow_query")
print cursor.fetchone()
finally:
cursor.close()
上記のコードを変更して、クエリのタイムアウトを設定するにはどうすればよいですか? このタイムアウトは接続の作成にも適用されますか?
これは、java.sql.Statement の setQueryTimeout(int seconds) メソッドが Java で行うことと似ています。
ありがとう