Ruby on rails 独角兽;Heroku-每个dyno都有不同的配置吗?

Ruby on rails 独角兽;Heroku-每个dyno都有不同的配置吗?,ruby-on-rails,heroku,resque,sidekiq,Ruby On Rails,Heroku,Resque,Sidekiq,我目前正在2台Heroku dynos上运行我的应用程序。根据我目前所查找的内容,我需要添加类似于config/unicorn.rb的内容: worker_processes 3 timeout 30 @resque_pid = nil before_fork do |server, worker| @resque_pid ||= spawn("bundle exec rake " + \ "resque:work QUEUES=scrape,geocode,distance,mai

我目前正在2台Heroku dynos上运行我的应用程序。根据我目前所查找的内容,我需要添加类似于config/unicorn.rb的内容:

worker_processes 3
timeout 30

@resque_pid = nil

before_fork do |server, worker|
  @resque_pid ||= spawn("bundle exec rake " + \
  "resque:work QUEUES=scrape,geocode,distance,mailer")
end
我有几个不同的后台作业要处理,有些需要单线程运行,有些需要并发运行。此配置的问题在于,在两个Unicorn实例上,它将生成完全相同的resque工作线程(相同的队列等)

如果我可以更改每个工作进程处理的队列类型,甚至让一个实例运行resque工作进程,另一个实例运行sidekiq工作进程,这将大大简化一切


这可能吗?

也许您混淆了unicorn worker\u流程和Heroku workers

您可以使用Procfile为每个队列启动Heroku workers,并为处理web请求启动unicorn进程

尝试此设置

/config/unicorn.rb

worker_processes 4 # amount of unicorn workers to spin up
timeout 30         # restarts workers that hang for 30 seconds
/程序文件

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq
worker: bundle exec rake resque:work QUEUES=scrape,geocode,distance,mailer

很抱歉迟了答复。在上面的设置中,您只需支付1个dyno(1个是免费的),但可以获得6个web进程+2个工作人员。请看这里:在您的设置中,每个工人都会算作您需要支付的单独dyno吗?