相关疑难解决方法(0)

Rails服务器看不到代码更改和重新加载文件

我注意到我的rails服务器在更改后没有重新加载控制器,模型和可能的任何其他文件.我使用Vagrant和Rails API,我发现有些人通过添加以下行来解决这个问题Vagrantfile.

config.vm.provider "virtualbox" do |vb|
  vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 5000 ]
end
Run Code Online (Sandbox Code Playgroud)

它不能解决我的问题.我没有想法我还能做些什么来解决这个问题.我附上可能对您有用的文件.

Gemfile看起来像这样:

source 'https://rubygems.org'

gem 'rake', '< 11.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '>= 5.0.0.beta3', '< 5.1'
# Use mysql as the database for Active Record
# gem 'mysql2', '>= 0.3.18', '< 0.5'

# User PostgreSQL as the database for Active Record
gem 'pg', '~> 0.18'

gem 'active_model_serializers'

gem 'rspec-its'

gem 'database_cleaner'

# Use Puma …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails vagrant puma ruby-on-rails-5

18
推荐指数
2
解决办法
1万
查看次数

Rails 4数据库连接池错误

我有一个使用NGINX和Puma托管的rails应用程序.每10个小时左右,该应用程序将无法使用.每当用户尝试连接时,都会显示以下错误消息:

Error during failsafe response: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)
Run Code Online (Sandbox Code Playgroud)

这将一直持续到应用程序重新启动.

我已经读过这是因为数据库连接池已满,因此必须在rails应用程序中创建线程,这些线程在完成时不会关闭与数据库的连接.据我所知,应用程序代码中只有一个位置使用线程:一个块使用Ruby Timeout模块,但这不访问数据库.

按照本指南 https://devcenter.heroku.com/articles/concurrency-and-database-connections(我实际上并没有使用Heroku)我已将数据库连接池的大小设置为5,使用以下配置文件:

#config/initializers/database_connection.rb
Rails.application.config.after_initialize do
  ActiveRecord::Base.connection_pool.disconnect!

  ActiveSupport.on_load(:active_record) do
    config = ActiveRecord::Base.configurations[Rails.env] ||
                Rails.application.config.database_configuration[Rails.env]
    config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds
    config['pool']              = ENV['MAX_THREADS'] || 5 
    ActiveRecord::Base.establish_connection(config)
  end
Run Code Online (Sandbox Code Playgroud)

结束

该站点使用Rails 4.0.0托管.我已经读过,这可能实际上是一个Rails 4.0.0问题,并且这在以后的版本中得到修复,但我不确定. Heroku上的ConnectionTimeoutError与Postgres

  1. 有没有办法监视连接池中活动数据库连接的数量?这将使调试更容易.
  2. 是否在Rails应用程序代码中使用Timeout模块可能导致此问题?
  3. 这可能是一个Rails 4.0.0问题,而不是我的应用程序的问题?

rails应用程序正在生产环境中运行.如果需要,我可以提供有关我的Puma,NGINX配置的更多信息.

database-connection ruby-on-rails nginx puma

8
推荐指数
1
解决办法
2380
查看次数