rufus-scheduler rails 定时任务

柴晔
2023-12-01

之前先在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

 

 

 类似资料: