Rah*_*hul 3 ruby cron ruby-on-rails whenever
我希望每分钟在我的controller.rb文件中运行一个特定的方法.我正在寻找使用随时随地的宝石铁路,但我有点困惑如何做到这一点.
目前在schedule.rb我有:
every 1.minutes do
runner "Server.update_all_servers"
end
Run Code Online (Sandbox Code Playgroud)
我不确定runner命令的作用.有人可以解释这个命令究竟是做什么的吗 根据我的理解,它调用Model.ModelMethod但我需要在application_controller.rb中调用一个名为update_all_servers()的方法.是否有可能做到这一点?或者我是否必须将application_controller.rb中的任何内容移动到模型文件(例如位于/models/server.rb中的文件)?
您可以Server在/lib以下位置创建课程:
class ServerUpdater
attr_accessor :servers
def initialize(servers = nil)
@servers = servers || Server.all
end
def update_all
servers.find_each { |server| server.update_info }
end
end
Run Code Online (Sandbox Code Playgroud)
然后你可以打电话给ServerUpdater.new(@servers).update_all你的控制器.
在你的cron工作中,你会打电话 ServerUpdater.new(Server.all).update_all
你需要一个update_info包含逻辑的模型中的方法.
| 归档时间: |
|
| 查看次数: |
4474 次 |
| 最近记录: |