2017-09-13 101 views
0

我试图创建一个cron作业,运行一个控制器方法与每当宝石,但我有麻烦。每当宝石控制器方法不起作用

配置\ 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 

我也跑了,每当--update-crontab来更新cron作业。

为什么记录仪消息不会在日志中显示?

感谢您的帮助。

回答

1

这是因为Reset.reset会尝试调用Reset类的重置方法。也就是说,Reset.reset可以调用类的方法

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

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

此外,你需要确保你有一个self.logger类方法为好,或者代码就这样消逝了。

最后,为了您自己的启发:Reset就像您写的不是控制器。这只是一个普通的老红宝石物体。

+1

呃,我也不能肯定只是从问题,但你使用Windows?我假设你是文件路径中的反斜杠......每当使用“cron”,它是一个* nix实用程序。它可能只是不会在Windows上工作。 – Glyoko