来自控制器: -
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文件中没有任何内容
答案 0 :(得分:0)
尝试以下系统调用:
system "#{args.join(' ')} rake #{task} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
答案 1 :(得分:0)
验证“rake”是否在运行Web服务器/ app服务器的用户的$ PATH中