gpt4 book ai didi

ruby-on-rails - 有没有办法让 Resque 平均分配给定的工作?

转载 作者:可可西里 更新时间:2023-11-01 11:43:33 26 4
gpt4 key购买 nike

我有 5 个 Resque worker 设置如下:

QUEUE=* rake environment resque:work
QUEUE=* rake environment resque:work
QUEUE=* rake environment resque:work

当我从事这样繁重的工作时:

100.times do 
Resque.enqueue(DoTheJob)
end

第一个 worker 得到大约 80 的工作,其他 worker 分享其余的...

就我而言,我可能有 40 个并发且非常繁重的工作 - 视频转码 -。它们将被连续触发,我希望工作能够平等地或至少公平地与我现有的 worker 分开(他们最多可以有 30 个)。

是否有一个选项或类似的东西?

我怎样才能做到这一点?

谢谢

最佳答案

好吧,当我用像这样的最简单的 Resque 工作类结构尝试上面的代码时:

class MyWorker 
@queue=:test

def self.perform(data)

puts "Testing...."

end

end

100.times do
Resque.enqueue(MyWorker)
end

所有作业都排队等待同一个 worker 。

但是。

当我让 worker sleep 几秒钟时,我发现工作被相当公平地干扰了。

class MyWorker @queue=:test

def self.perform(data)

puts "Testing...."
sleep 3
end

end

我不知道 Resque 用于此目的的算法是什么,但看起来没有问题。

关于ruby-on-rails - 有没有办法让 Resque 平均分配给定的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com