1
爲了正確地擴展我們的sidekiq工人到我們的數據庫池的大小運行工人的數量,我們在配置想出了一個小公式你能確定你的應用程序
sidekiq.rb
Sidekiq.configure_server do |config|
config.options[:concurrency] = ((ENV['DB_POOL'] || 5).to_i - 1)/workers
end
def workers
... the number of workers configured for our project ...
(ENV['HEROKU_WORKERS'] || 1).to_i
end
我們正在手動設置HEROKU_WORKERS,但如果在應用程序內部有一種方法來詢問Heroku API,那將是很可愛的。
模所有可能發生的事情(工人上升或下降,改變工人數量等),這似乎使我們擺脫了最初的問題;我們的工作人員將消耗全部的數據庫池連接,然後在啓動時崩潰。
我假設你的工人有一個他們在'Procfile'中的行。如果是這樣的話,Heroku API可以幫助你。例如,查看https://devcenter.heroku.com/articles/platform-api-reference#dyno或更好的https://devcenter.heroku.com/articles/platform-api-reference#formation –
我希望我不必將API密鑰傳遞給我的應用程序。這感覺就像一個安全漏洞。 –
你不需要,它確實是不可取的。正確的模式是使用Heroku config var。 –