我想让Sidekiq在Heroku玩。没有运气. .我的配置是这样的:
Procfile
web: bundle exec passenger start -p $PORT --max-pool-size 5
worker: bundle exec sidekiq
初始化/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])
,但当我做heroku ps
时,只显示web实例。不是Sidekiq。
然而,我可以手动运行heroku run sidekiq
并运行我的工人。我错过了什么,这样Heroku就不会自己启动了?
问题是你没有在初始化器中配置Sidekiq,以便Sidekiq确切地知道如何连接到redis。创建初始化/sidekiq。并添加以下代码
Sidekiq.configure_server do |config|
config.redis = { :url => ENV["REDISTOGO_URL"] }
end
也可以删除
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/")
你不需要它,因为你正在使用来自环境的redis url。
不要忘记重新启动服务器。