每当 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 对象。
我正在尝试创建一个 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 对象。