Rake任务在Heroku上填充数据库

时间:2016-10-06 09:29:36

标签: ruby-on-rails heroku sidekiq rake-task

我需要填充一次Heroku数据库,并使用Nokogiri从外部网站抓取初始数据。完成初始人口任务后,数据库将通过sidekiq + sidekiq-cron的定期作业进行更新。

是否可以在远程应用程序环境中使用rake任务来提供数据库?
我的rake任务将从外部网站获取名称和其他属性,并将它们写入数据库,如下例所示:

lib/tasks/feed.rake

desc "Fetch data and feed the database"
task :feed_database => :environment do
  require 'nokogiri'
  require 'open-uri'

  range = (1..100)
  url  = "http://www.example.com"
  doc  = Nokogiri::HTML(open(url))

  range.each do |num|
    name   = doc.at_css("tr:nth-child(#{num})).text
    Model.create(name: name)
  end
end

从我的远程控制台,我将使用以下命令:

$ heroku run rake feed_database

或以下命令:

$ heroku run console
$ rake feed_database

然而Heroku fontconfig处有关于rake任务的little documentation,并且似乎没有很好地解释使用rake命令的限制。

0 个答案:

没有答案