2015-12-14 53 views
0

我有以下的sidekiq.yml配置文件,但我不知道如何構建一個具有較低併發性的單獨隊列。我怎樣才能做到這一點?如何爲sidekiq配置指定不同的併發隊列?

--- 
:concurrency: 25 
:pidfile: ./tmp/pids/sidekiq.pid 
:logfile: ./log/sidekiq.log 
:queues: 
    - default 
    - [high_priority, 2] 
    - [import_queue, 3] 
    - [user_queue, 4] 
:daemon: true 

我想這樣做雖然以下,

--- 
:concurrency: 25 
:pidfile: ./tmp/pids/sidekiq.pid 
:logfile: ./log/sidekiq.log 
:queues: 
    - default 
    - [high_priority, 2] 
    - [import_queue, 3] 
    - [user_queue, 4] 
:daemon: true 
--- 
:concurrency: 5 
:pidfile: ./tmp/pids/sidekiq.pid 
:logfile: ./log/sidekiq.log 
:queues: 
    - small_queue 
:daemon: true 

回答

3

併發是Sidekiq過程的性質,代表有多少線程旋轉起來。您不能讓一個Sidekiq流程在兩個不同的併發流程中運行;但是,你可以旋轉兩個Sidekiq進程具有獨立的配置文件:

bin/sidekiq -C config/sidekiq_one.yml 
bin/sidekiq -C config/sidekiq_two.yml 

然而,這取決於你的動機在這裏,你可能最好只使用一個Sidekiq進程和優先級之內它在訂購的隊列。這樣,一個進程中的工人就不會閒置,而另一個進程的隊列正在增長。儘管取決於你的情況,例如如果第二個隊列的工作很少但非常重要,這樣的解決方案確實有意義。

+0

我想配置該設置的原因是爲了避免殺死服務器,我可能會或可能不會從...中獲取信息;) – daveomcd