我正在一个 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
我想异步抓取链接。我查看了 delay_jobs gem 并看到您可以对对象使用延迟方法,但是当我使用延迟时,我的刮板没有任何输出。
朝着正确的方向一点点插入将不胜感激! :)
最佳答案
您可以在那里创建新线程并调用方法
http://www.ruby-doc.org/core-2.1.5/Thread.html
关于ruby-on-rails - 如何在 Rake 任务中在后台运行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27415201/