我在Heroku上運行Rails應用程序。併發數據庫連接Heroku Unicorn rails應用程序
我有一個測功機。我使用的是Hobby Basic數據庫,每月9美元,連接限制爲20個。
我的應用程序在Unicorn上運行。但是當進行多個數據庫調用時,它仍然非常慢。
這是我在我的unicorn.rb文件:
# config/unicorn.rb
worker_processes 3
timeout 30
preload_app true
before_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
Process.kill 'QUIT', Process.pid
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
有關管理併發連接本文會談:https://devcenter.heroku.com/articles/concurrency-and-database-connections
但是,我仍然感到困惑。用我目前的設置,我該如何同時允許多個數據庫連接?並在我的數據庫允許的最大連接(20)?我真的很感激,如果有人在這裏處理了在Heroku上擴展Rails應用程序,可能會讓我指向正確的方向。
在我看來,你需要每個數據庫連接一個「獨角獸」工人。每個工作人員都有一個連接。當然,我從來沒有使用過獨角獸,這就是它使用fork的樣子。 –