我的Ruby on Rails应用程序中有几个抓取器,并且我试图将数据抓取器运行到单独的线程中。
问题是我的刮板存储在app/controllers/services/scrapers
文件夹中,而我无法在线程内访问此服务。看下面的代码:
threads = []
data.each_key do |office|
threads << Thread.new(office, data) do |office1, data1|
data1[office1].each_key do |link|
if (first condition)
Services::Scrapers::FirstScraperService.new.parse(link, data1[office1][link])
elsif (second condition)
Services::Scrapers::SecondScraperService.new.parse(link, data1[office1][link])
end
end
end
end
threads.each { |thr| thr.join }
然后我得到一个错误:uninitialized constant ParserController::Services
如果我在没有螺纹的情况下运行刮板,则它们工作正常。
对我的问题有什么想法或更好的解决方案(我需要并行运行刮板)?
我的目录结构:
app/controllers/services/scrapers