Rails - 在服务器启动之前执行任务

时间:2015-05-12 11:52:01

标签: ruby-on-rails rspec

我希望我的应用在服务器启动之前执行任务(从其他网站下载CSV文件并解析它们)。

我应该在哪个文件中放入此代码?(也许db/seeds.rb?)

另外,关于如何使用RSpec进行测试的任何想法?

4 个答案:

答案 0 :(得分:5)

initializers文件夹是设置此任务的适当位置。

只需创建一个扩展名为.rb的文件,其他所有内容都将在启动时执行。

http://guides.rubyonrails.org/configuring.html#initializers

答案 1 :(得分:2)

来自Rails Guides

  

在极少数情况下,您的应用程序需要在加载Rails之前运行一些代码,请将其置于要求' rails / all'在config / application.rb。

答案 2 :(得分:1)

initializers内部文件夹中,可以创建任何.rb文件,并可以在该文件中写入任何逻辑代码。它将在开始时执行。

但它可能会降低服务器启动速度,因为在您的情况下,csv下载和解析可能需要一段时间才能执行。

http://guides.rubyonrails.org/configuring.html#running-code-before-rails

答案 3 :(得分:0)

一种解决方案,这可能不对

在lib / tasks / say_hello_rake.rake

namespace :sample do
  task :your_task_name do
    puts 'Hello my task ... '
  end
end
在rails s之前

rake sample:your_task_name