之前先在initializers 文件夹下建立了一个task.rb ,rails服务启动的时候执行,本地没问题,可是服务器上启动了3个进程,会执行3遍,解决方法是 把task.rb 放到 script/文件夹下,然后在项目根目录执行 ruby script/task.rb production &。以为ok了。but又出问题了,
我的日志输出路径是
Logger.new("#{Rails.root_to_s}/log/test.log"),运行脚本的时候报错 uninitialized constant RAILS ,解决方法是在task.rb文件头 加上下面两行:
ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development'
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
最下面还要加上
scheduler.join