使用同一Redis服务器的具有不同队列的多个实例的Sidekiq

时间:2018-10-23 14:54:50

标签: sidekiq upstart

最近不得不对我的Sidekiq队列进行优先级排序(在我仅使用默认队列之前)。 因此,我想到了按照https://github.com/mperham/sidekiq/wiki/Advanced-Options#reserved-queues

使用保留队列

config / sidekiq.yml内容

---
:concurrency: 25
:logfile: ./log/sidekiq.log
:queues:
  - default
  - mailers

config / sidekiq_critical.yml内容

---
:concurrency: 10
:logfile: ./log/sidekiq.log
:queues:
  - critical

在开发环境中, 我可以使用以下不同的配置文件启动2个端实例

sidekiq -C config/sidekiq.yml
sidekiq -C config/sidekiq_critical.yml

我可以在sidekiq ui中看到两个具有不同队列的sidekiq实例

我不知道如何在生产环境中运行类似的方法。 对于生产,我们使用与https://github.com/mperham/sidekiq/tree/master/examples/upstart

中提到的类似

sidekiq.conf内容

script
exec /bin/bash <<'EOT'
  sudo -i -u ec2-deploy
  cd path/to/app
  RAILS_ENV=production bundle exec sidekiq -C config/sidekiq.yml
  RAILS_ENV=production bundle exec sidekiq -C config/sidekiq_critical.yml
EOT
end script

但是我只能看到sidekiq的一个实例正在运行 config / sidekiq.yml 队列。

请帮助如何在同一服务器上运行具有不同配置文件的两个sidekiq实例

1 个答案:

答案 0 :(得分:2)

您将创建一个sidekiq2.conf。或sidekiq-critical.conf。或您想要的任何名称。