Я использовал одновременный - ruby 1.1.5 с Rails 5.1.6 и MySQL 8.0. Мне нужно сделать 500 вызовов БД, поэтому я попытался сделать это с использованием одновременного ruby, но результаты были чрезвычайно медленными, чем ожидалось
Обычный вызов L oop - это занимает в среднем 7-8 секунд
[1..500].map do
## Db Call
end
После изменения кода и использования одновременного ruby это время увеличивается до 12-13 сек c
thread_pool = Concurrent::FixedThreadPool.new(10)
promises = []
[1..500].map do
Concurrent::Promises.future({ executor: thread_pool }) do
Rails.application.executor.wrap do
ActiveRecord::Base.connection_pool.with_connection do
## Db Call
end
end
end
end
Невозможно отладить, что может быть возможной причиной, которая делает параллельные запросы медленными. Я что-то упустил?