我有一个关于 Sidekiq 的问题。我来自 Resque 范式,在当前的应用程序中,我为每个队列启动一个工作程序,因此在终端中我会这样做:

rake resque:work QUEUE='first'
rake resque:work QUEUE='second'
rake resque:work QUEUE='third'

然后,如果我想要更多的 worker ,例如对于第三个队列,我只需创建更多的 worker :
rake resque:work QUEUE='third'

我的问题是...

使用 Sidekiq,您将如何从多个 worker 开始?我知道你可以这样做:
sidekiq -q first, -q second, -q third

但这只会启动一个获取所有这些队列的工作程序。那么,我将如何启动三个工作人员,并告诉每个工作人员只关注特定队列?另外,我将如何在 Heroku 中做到这一点?

最佳答案

您可以在 config/sidekiq.yml 中使用配置文件:

# Sample configuration file for Sidekiq.
# Options here can still be overridden by cmd line args.
#   sidekiq -C config.yml
---
:verbose: true
:pidfile: ./tmp/pids/sidekiq.pid
:concurrency: 15
:timeout: 5
:queues:
  - [first, 20]
  - [second, 20]
  - [third, 1]
staging:
  :verbose: false
  :concurrency: 25
production:
  :verbose: false
  :concurrency: 50
  :timeout: 60

这样您就可以准确地配置您想要的内容,并准确回答您的问题,并发值就是您所需要的,它定义了执行的并发工作人员的数量。

更多信息:https://github.com/mperham/sidekiq/wiki/Advanced-Options

关于resque - Sidekiq 多个 worker ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20532793/

10-13 07:32