【发布时间】:2011-08-20 21:03:42
【问题描述】:
这是爬虫的代码
class Scrape
def perform
url = "# a long url"
agent = Mechanize.new
agent.get(url)
while(agent.page.link_with(:text => "Next Page \u00BB")) do
agent.page.search(".content").each do |item|
puts "."
House.create!({
# attributes...
})
end
agent.page.link_with(:text => "Next Page \u00BB").click
end
end
end
在我的本地环境中,我只需键入即可在 Rails 控制台中运行它
Scrape.new.delay.perform # to queue the job
rake jobs:work
而且效果很好。
但是,在 Heroku 控制台中运行类似的(使用工人运行而不是 rake jobs:work)似乎并没有做任何事情。我尝试在 Heroku 日志中记录一些行,我可以获取 url 变量来记录(因此该方法至少被调用)但是“。”每次我们运行while循环时都不会出现,并且不会在数据库中创建房屋。
任何人有什么想法可能是错的吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 heroku delayed-job