2013-10-08 96 views
0

我有5 Resque工人設置是這樣的:有沒有一種方法,使Resque平均分配給工作?

QUEUE=* rake environment resque:work 
QUEUE=* rake environment resque:work 
QUEUE=* rake environment resque:work 
當我運行一個沉重的工作像這樣

100.times do 
Resque.enqueue(DoTheJob) 
end 

第一個工人得到工作和其他工作人員的約80分享剩下的.. 。

在我的情況,我可能有40周併發,真正重的工作 - 視頻transcoding-。他們將連續觸發,我想就業機會,同樣分隔或至少相當,以我現有的工人(他們可高達30)。

是否有一個選項或類似的東西?

我怎樣才能做到這一點?

謝謝

+0

如果它們共享相同的所有100個工作崗位屬於一個隊列,那麼我想不 – Viren

回答

0

好吧,當我嘗試以上一個簡單的Resque工人階層結構這樣的代碼:

class MyWorker 
@queue=:test 

def self.perform(data) 

puts "Testing...." 

end 

end 

100.times do 
Resque.enqueue(MyWorker) 
end 

所有作業都排隊到同一個工作。

但是。

當我把幾秒鐘sleep給工人,我看到的工作是相當相當distrubeted。

class MyWorker @queue=:test 

def self.perform(data) 

puts "Testing...." 
sleep 3 
end 

end 

我不知道什麼是Resque的algorythm用於此目的,但看起來像有它沒問題。

相關問題