在轨道3上的ruby的生产模式中不调用Rake任务

时间:2011-07-07 10:48:36

标签: ruby-on-rails ruby-on-rails-3 rake

来自控制器: -

call_rake :parse_venue, :venue_list_id => venue_list.id


def call_rake(task, options = {})
   options[:rails_env] ||= Rails.env
   args = options.map { |n, v| "#{n.to_s.upcase}='#{v}'" }
   system "rake #{task} #{args.join(' ')} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
end 

在开发模式下,此rake任务被触发..但是在生产模式的情况下,它不会被触发。

PS: - 灵感来自rake in background, railscast。生产模式中的rake.log文件中没有任何内容

2 个答案:

答案 0 :(得分:0)

尝试以下系统调用:

system "#{args.join(' ')} rake #{task} --trace 2>&1 >> #{Rails.root}/log/rake.log &"

答案 1 :(得分:0)

验证“rake”是否在运行Web服务器/ app服务器的用户的$ PATH中