私はherokuとheroku postgresqlを使用しています。SQL コマンドに 10 秒以上かかる場合に例外が発生するように、db コマンドのタイムアウトを設定するにはどうすればよいですか?
質問する
12003 次
4 に答える
22
次のように database.yml を構成します。重要な部分は変数のハッシュです。
defaults: &default
adapter: postgresql
encoding: unicode
pool: 5
min_messages: warning
variables:
statement_timeout: 5000
于 2015-02-24T04:36:28.933 に答える
6
ここで解決策を見つけました:Ruby on Rails:アプリケーション構成でデータベースタイムアウトを設定する方法は?
追加
ActiveRecord::Base.connection.execute('set statement_timeout to 10000')
ファイルの最後にありenvironment.rb
ます。
誰かがより良い方法を見ていますか?
于 2013-02-08T00:05:18.873 に答える
5
ruby はわかりませんが、PostgreSQL では次のように実行できます。
SET statement_timeout = '10s'
その後、この接続 (セッション) 内のすべてのクエリには、ランタイムに厳密な制限があります。
postgresql.conf でグローバル デフォルトとして変更することも、特定のデータベースまたは特定のユーザーのデフォルトにすることもできます。
ALTER DATABASE web SET statement_timeout = '10s';
ALTER USER bad_user SET statement_timeout = '10s';
于 2013-02-07T02:03:53.667 に答える