我启动了许多线程(使用Ruby Threads类)来调用一些发出HTTP请求的函数。收到答案需要花费很多时间(这就是我决定使用线程同时拨打更多电话的原因)。但似乎线程正在等待,我没有时间使用这种方法。这个问题与Ruby有关吗?等待HTTP请求的答案是否阻止其他线程执行?
num_threads = 10
threads=[]
(1..num_threads).each do | thread_no |
puts "Creating thread no." + thread_no.to_s
threads << Thread.new{migrate_from_CSV(thread_no)}
end
migrate_from_CSV函数调用Cucumber步骤(在操作数据之后)进行以下调用:
@agent = Mechanize.new if @agent.nil?
@agent.post(@path, account_json.to_json, HEADERS)
此POST请求需要很长时间才能完成,所以我想多次同时调用它。
答案 0 :(得分:0)
我想我找到了答案。如果我改变
@agent = Mechanize.new if @agent.nil?
到
@agent = Mechanize.new
似乎解决了这个问题。