我有一个关于 Sidekiq 的问题。我来自 Resque 范例,在当前的应用程序中,我为每个队列启动一个工作线程,因此在终端中我会执行以下操作:
rake resque:work QUEUE='first'
rake resque:work QUEUE='second'
rake resque:work QUEUE='third'
Run Code Online (Sandbox Code Playgroud)
然后,如果我想要更多工作人员,例如第三个队列,我只需创建更多工作人员,如下所示:
rake resque:work QUEUE='third'
Run Code Online (Sandbox Code Playgroud)
我的问题是...
对于 Sidekiq,您将如何从多个工作人员开始?我知道你可以这样做:
sidekiq -q first, -q second, -q third
Run Code Online (Sandbox Code Playgroud)
但这只会启动一个工作者来获取所有这些队列。那么,我将如何启动三个工作人员,并告诉每个工作人员只关注特定队列?另外,我该如何在 Heroku 中做到这一点?
小智 2
您可以在 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
Run Code Online (Sandbox Code Playgroud)
这样您就可以准确配置您想要的内容,并准确回答您的问题,并发值就是您想要的,它定义了执行的并发工作线程的数量。
更多信息在这里:https://github.com/mperham/sidekiq/wiki/Advanced-Options
| 归档时间: |
|
| 查看次数: |
4235 次 |
| 最近记录: |