मैं रेल 5 और रूबी 2.4 का उपयोग कर रहा हूं। मैं नीचे कैसे देखकर बता सकता हूं, या आप एक ही समय में चल रहे कई धागे चल रहे हैं?क्या समेकन तब भी होता है जब थ्रेड पूल में केवल एक धागा होता है?
pool = Concurrent::FixedThreadPool.new(1)
promises = links.map do |link|
Concurrent::Promise.execute(executor: pool) do
result = process_link(link)
if result
if result.kind_of?(Array)
result.each do |my_obj|
my_obj.update_attributes({ :a => a })
records_processed = records_processed + my_obj.matches.count
end
else
records_processed = records_processed + result.matches.count
result.update_attributes({ :a => a })
end
end
end
end
promises.map(&:wait).map(&:value!)
मैं अपने पूल के लिए निर्धारित किया है के रूप में "1" मेरी धारणा है कि कुछ भी नहीं समवर्ती चल रहा है, लेकिन मैं इस त्रुटि प्राप्त हो रही है ...
Error during processing: (ActiveRecord::ConnectionTimeoutError) could not obtain a connection from the pool within 5.000 seconds (waited 5.002 seconds); all pooled connections were in use
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:202:in `block in wait_poll'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:193:in `loop'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:193:in `wait_poll'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:154:in `internal_poll'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:278:in `internal_poll'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:148:in `block in poll'
/Users/nataliab/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:158:in `synchronize'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:148:in `poll'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:717:in `acquire_connection'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:490:in `checkout'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:364:in `connection'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:883:in `retrieve_connection'
/Users/nataliab/.rvm/gems/[email protected]/gems/activerecord-5.0.1/lib/active_record/connection_handling.rb:128:in `retrieve_connection'
मैं ऊपर नहीं मिलता त्रुटि अगर मैं अपने कोड को संशोधित चलाने के लिए मैं कहाँ सकारात्मक नहीं संगामिति चल रहा है हूँ ...
links.each do |link|
result = process_link(link)
if result
if result.kind_of?(Array)
result.each do |race|
my_obj.update_attributes({ :a => a })
records_processed = records_processed + my_obj.matches.count
end
else
records_processed = records_processed + result.matches.count
result.update_attributes({ :a => a })
end
end
end
संपादित करें: यह मेरा विकास के माहौल के लिए मेरे डेटाबेस विन्यास है onment। यह भी ध्यान रखें कि यह सब रेल कंसोल में चलाया जा रहा है।
development:
adapter: postgresql
encoding: utf8
database: sims
username: postgres
password: password
pool: 5
timeout: 15000
host: 127.0.0.1
तो क्या आप अभी भी इसे पूरी तरह से साफ प्रतिलिपि पर प्राप्त करते हैं? – ndn