我试图从这样的时间表中调用一个方法:
schedule.rb :
require '../app/bots/task_bot'
every 1.minute do
runner 'TaskBot.test_robot'
end
我有一个名为TaskBot
的类放在目录app/bots/task_bot.rb
中。它看起来像这样:
task_bot.rb :
class TaskBot
def test_robot()
logger = Logger.new('log/robot.log')
logger.debug("TEST")
end
end
然后我运行了命令whenever --update-crontab
并验证了使用crontab -l
更新了crontab。 Crontab已更新,但我没有看到Logger每分钟都在执行。我是新来的,我在这里错过了一些东西吗?
答案 0 :(得分:1)
test_robot
是实例方法,但您尝试将其作为类方法执行;为了使它工作,你有两个选择:
首先创建TaskBot
对象,然后调用test_robot
:
every 1.minutes do
runner 'TaskBot.new.test_robot'
end
创建类方法,不要修改计划代码(我更喜欢这种方式):
class TaskBot
def self.test_robot
logger = Logger.new('log/robot.log')
logger.debug("TEST")
end
end