每当 gem 控制器方法不起作用时

Whenever gem controller method not working

我正在尝试创建一个 cron 作业,它使用 whenever gem 运行控制器方法,但我遇到了麻烦。

config\schedule.rb

every 1.minutes do
  runner "Reset.reset"
end

lib\reset.rb

class Reset
  def reset
    logger.debug("This is the cron job")
  end
end

我还 运行 whenever --update-crontab 来更新 cron 作业。

为什么日志中没有显示记录器消息?

感谢大家的帮助。

那是因为 Reset.reset 试图在 Reset class 上调用 reset 方法。也就是说,Reset.reset 尝试调用 class 方法 .

您的重置方法是一个实例方法。要定义 Reset.reset class 方法,请使用:

class Reset
  def self.reset
    logger.debug("This is the cron job")
  end
end

此外,您还需要确保您也有一个 self.logger class 方法,否则该代码就会失效。

最后,为了您自己的启发:Reset 如您所写,它不是控制器。它只是一个普通的旧 ruby 对象。