Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails ActiveRecord签出超时设置被忽略_Ruby On Rails_Activerecord_Timeout - Fatal编程技术网

Ruby on rails Rails ActiveRecord签出超时设置被忽略

Ruby on rails Rails ActiveRecord签出超时设置被忽略,ruby-on-rails,activerecord,timeout,Ruby On Rails,Activerecord,Timeout,我有下面的初始值设定项 /config/initializers/database_connection.rb: Rails.application.config.after_initialize do ActiveRecord::Base.connection_pool.disconnect! ActiveSupport.on_load(:active_record) do config = Rails.application.config.database_configur

我有下面的初始值设定项

/config/initializers/database_connection.rb:

Rails.application.config.after_initialize do
  ActiveRecord::Base.connection_pool.disconnect!

  ActiveSupport.on_load(:active_record) do
    config = Rails.application.config.database_configuration[Rails.env]
    config['reaping_frequency'] = (ENV['DB_REAP_FREQ'] || 5).to_i # seconds
    config['pool']              = (ENV['DB_POOL'] || 15).to_i
    config['checkout_timeout']  = (ENV['DB_CHECKOUT_TIMEOUT'] || 25).to_i # seconds
    ActiveRecord::Base.establish_connection(config)
  end
end
我仍然得到以下错误:

ActiveRecord::ConnectionTimeoutError - could not obtain a database connection within 5.000 seconds (waited 6.940 seconds)
增加的超时(25秒)被忽略,5秒后超时仍在发生


我应该如何设置checkout\u timeout?

idk,如何通过config对象设置
config.checkout\u timeout
,无论在database.yaml中如何设置,该文件也应该进行erb解析,允许您在中使用ENV vars,如下所示:

production:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  checkout_timeout: <%= ENV['TIMEOUT'] %>
然而,我并不感到惊讶,两者都是可能的。
不要忘记重启rails服务器并在(
spring stop
)之前杀死spring

签出超时用于PostgreSQL数据库; 签出用于SQLite数据库


可能是因为变量名错误吗?

database.yml未在生产中使用。连接字符串来自ENV['DATABASE_URL']。
 config.checkout_timeout  = 5