我希望有一项任务,每隔5分钟从我的用户模型中删除一个特定值。 我的代码:
schedule.rb
every 5.minutes do
runner 'Site::SubstractSomething.execute'
end
应用程序/任务/ SubstractSomething.rb
module Site
class SubstractSomething
def initialize
end
def execute
@users = ::User.all
@users.each { |user| user.update_heat }
end
end
end
用户模型中的方法:
def update_heat
self.heat -= 10
self.save
end
然后我跑了:
crontab -r
whenever --update-crontab --set environment='development'
编辑: 我从命名空间中取出了这个工作,看起来它就是诀窍。谢谢你的帮助
答案 0 :(得分:2)
您必须require 'SubstractSomething'
中schedule.rb
,并确保$LOAD_PATH
包含其所在的目录。有关如何实现的一些可能性,请参阅this question此