在Ruby线程中发出HTTP请求

时间:2015-11-10 11:06:28

标签: ruby multithreading

我启动了许多线程(使用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请求需要很长时间才能完成,所以我想多次同时调用它。

1 个答案:

答案 0 :(得分:0)

我想我找到了答案。如果我改变

@agent = Mechanize.new if @agent.nil?

@agent = Mechanize.new

似乎解决了这个问题。