我可以使用rufus-scheduler在rails中调度控制器方法吗? [英] Can I schedule controller methods in rails using rufus-scheduler?
本文介绍了我可以使用rufus-scheduler在rails中调度控制器方法吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以从下面发布的控制器中安排索引方法吗?如果是这样,我将如何去做?
Could I schedule the index method from the controller posted below? If so, how would I go about doing that?
class WelcomeController < ApplicationController
def index
if Number.find(1)
@number = Number.first
@number.value += 1
@number.save
else
@number = Number.new
@number.value = 0
end
end
end
推荐答案
所以您似乎拥有一个Number模型.第一步是将逻辑从控制器转移到模型:
So you seem to have a Number model. The first step would be to move your logic from the controller to the model:
class Number
def self.increment
n = nil
if Number.find(1)
n = Number.first
n.value += 1
n.save
else
n = Number.new
n.value = 0
end
n
end
end
您的控制器随即成为
class WelcomeController < ApplicationController
def index
@number = Number.increment
end
end
然后,也可以从调度程序中调用此增量"类方法.像这样:
Then this "increment" class method can be called from the scheduler too. Like in:
# file:
# config/initializers/scheduler.rb
require 'rufus-scheduler'
# Let's use the rufus-scheduler singleton
#
s = Rufus::Scheduler.singleton
# Stupid recurrent task...
#
s.every '10m' do
Number.increment
end
现在,如果这个答案也超出您的理解范围,请考虑注册Rails开发人员课程.请意识到人们会在这里帮助您,而不是免费做您的工作.
Now if this answer too goes way above your head, consider registering for a Rails developer course. Please realize that people are here to help you, not to do your job for free.
这篇关于我可以使用rufus-scheduler在rails中调度控制器方法吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文