2017-01-18 9 views
1

Ruby 2.4でRails 5.0を使用しています。私はこの宝石私はRailsのスレッドプールに "join"する方法を教えてください。

gem 'concurrent-ruby' 

私は仕事を持つスレッドプールをアップロードしたいを持っているが、その後、私はthradpoolの実行が終了している中で実行がuntiすべてを継続する必要はありません。だから私はこれを試しました...

pool = Concurrent::FixedThreadPool.new(@concurrent_threads) 
    links.each do |link| 
    pool.post do 
     ... do work ... 
    end 
    end 
    pool.shutdown 

しかし、これは動作していないようです。つまり、 "pool.shutdown"行の後にコードが実行されていて、すべてが完了するまで実行を保持する ".join"のように動作することを期待していました。それ、どうやったら出来るの?

答えて

3

the docsから、pool.shutdownを呼び出した後、pool.wait_for_terminationを呼び出して、すべてのスレッドが完了するまでブロックすることができます。

関連する問題