gpt4 book ai didi

ruby-on-rails - 一次多个 Nokogiri 请求

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:36 24 4
gpt4 key购买 nike

我有一个 Controller ,我正在尝试从远程源获取 XML 文件。

类似于:

@artist = Nokogiri.XML(open(url).read)

但是,我想一次执行其中多个以获得不同的数据。我能以某种方式使用线程吗?

单独执行一个大约需要 400 毫秒。因此,当它们连续执行三个时,响应最多可达 1 秒以上。

最佳答案

是的,你可以使用线程:

named_urls = {
artist: 'http://foo.com/bar',
song: 'http://foo.com/jim',
# etc.
}
@named_xmls = {}
one_at_a_time = Mutex.new
named_urls.map do |name,url|
Thread.new do
doc = Nokogiri.XML(open(url).read)
one_at_a_time.synchronize{ @named_xmls[name] = doc }
end
end.each(&:join)

# At this point @named_xmls will be populated will all Nokogiri documents

我不确定写入共享散列中的不同键是否需要互斥锁,但为了安全起见也无妨。

关于ruby-on-rails - 一次多个 Nokogiri 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com