如何在rails应用程序中使用whenwer gem在一定时间间隔内调用方法?

问题描述 投票:0回答:2

在模型中写了一个方法,但我不能在某个时间间隔后使用whennv gem来执行该方法,以下是我的代码:-。

stage.rb (model)

def check_project_activity
  // code here
end

schedule.rb

every 1.day, at: '4:30 am' do
    runner "Stage.check_project_activity"
 end

方法调用会产生错误,但是通过终端调用这个方法却可以正常工作。

ruby-on-rails whenever
2个回答
0
投票

你调用的是实例方法 check_project_activity 就像它是类方法一样。

如果你的逻辑不依赖于实例,就把它变成类方法。

def self.check_project_activity
  // code here
  end

0
投票

你显示的是一个实例方法,也就是说你只能调用 check_project_activity 在一个特定的阶段实例上。

也许你想检查所有项目的活动?

在这种情况下,在模型中,您将会有

def self.check_all_stages_project_activity
  all.each do |stage|
    stage.check_project_activity
  end
end

而在你的 schedule_rb 你就会

every 1.day, at: '4:30 am' do
  runner "Stage.check_all_stages_project_ativity"
ed
© www.soinside.com 2019 - 2024. All rights reserved.