2014-12-11 99 views
0

我正在抓取rake任務中的網站。我的基本格式是這樣的:如何在Rake任務中的後臺運行函數?

namespace :crawler do 

    desc "TODO" 
    task crawl :environment do 
    Crawler.crawl! 
    end 

class Crawler 
    require 'rubygems' 
    require 'mechanize' 
    def self.scrape_page! 
    end 

    def self.start_scrape!(link) 
    # get html. prepare to scrape 
    end 

    def self.crawl! 
    # crawl links and scrape pages 
    self.delay.start_scrape(link) 
    end 
end 
end 

我想要異步鏈接鏈接。我看着delayed_jobs gem,看到你可以在對象上使用延遲方法,但是當我使用延遲時,我沒有從刮板輸出。

在正確的方向一點點將非常感謝! :)

+0

使用可以使用簡單的叉/ EXEC對並行運行的任務。它有效,但不是那麼美觀=),你是如何使用'delayed_jobs'寶石的? – 2014-12-11 04:16:45

+0

我剛剛添加'delayed_jobs'和後端gem到我的Gemfile,然後'bundle install && rails生成delayed_job:active_record && rake db:migrate' – 2014-12-11 04:24:04

+0

然後'Delayed :: Job.enqueue Processor.new ...'是? – 2014-12-11 04:55:32

回答