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。 –