2017-01-18 4 views
1

Я использую Rails 5.0 с Ruby 2.4. У меня есть этот драгоценный каменьКак я могу «присоединиться» к пулу потоков Rails?

gem 'concurrent-ruby' 

Я хочу, чтобы загрузить пул потоков с работы, но я не хочу продолжить выполнение Unti все в thradpool закончил выполнение. SO Я пробовал это ...

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, чтобы заблокировать пока все потоки не будут выполнены.