在RoR中的线程中运行刮板

时间:2019-10-09 10:41:25

标签: ruby-on-rails ruby ruby-on-rails-5

我的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

0 个答案:

没有答案