0
私は、ジョブリストを取得し、ウサギで待ち行列に入れてキューから作業者ポップジョブを実行するシステムをRuby(rabbitmq、parallel gem)それら。マルチスレッドジョブを実行するワーカーでRabbitMQを使用する - 並列宝物
準備ができたら、キューから1つのジョブをポップするのは簡単ですが、各ワーカーに5つのスレッドを実行させて、5つのスレッドがすべて処理しているときにワーカーがポップしないようにしたいキューからジョブが削除されます。スレッドが解放されると、ワーカーはキューからジョブを受け入れます。
パラレルgemを使用すると、マルチスレッドプロセスを作成するための唯一の方法は、次のコードを使用することです。
results = Parallel.map(array, :in_processes => MAX_PROCESSES) do |item|
item.process
end
私は
while true
cur_threads = Parallel.get_cur_threads
if cur_threads < MAX_PROCESSES
# get another job from queue
# allocate a thread for the job
end
任意のアイデアのような何かをしたいと思います?