Ruby on Rails – 每当Gem – Schedule.rb不运行代码(手动工作)

我正在尝试将Whenever gem实现到我的RoR 5应用程序中。 每年一次,我希望它在我的“用户”模型中运行一个方法,但出于测试目的,我每分钟都进行一次,如下所示:

Schedule.rb:

set :output, "/home/ubuntu/workspace/log/cron.log" set :environment, 'development' every 1.minute do runner "User.new.(methodhere)" end 

User.rb:

 def (methodhere) User.all.each do |user| user.update(remaining_days: user.total_days) end end 

在多个地方,我已经读过有时cronjobs在开发模式下不能正常运行,所以我跳过了所有的环节,让我的应用程序进入生产模式,这没有帮助。

然后我发现您可以在命令行中手动运行这些作业,然后我尝试使用找到的命令执行以下操作:

 whenever --update-cron 

然后

 crontab -l 

这表明

 # Begin Whenever generated tasks for: * * * * * /bin/bash -l -c 'cd /home/ubuntu/workspace && bundle exec bin/rails runner -e development '\''User.new.(methodhere)'\'' >> /home/ubuntu/workspace/log/cron.log 2>&1' 

手动运行:

 /bin/bash -l -c 'cd /home/ubuntu/workspace && bundle exec bin/rails runner -e development '\''User.new.y(methodhere)'\'' >> /home/ubuntu/workspace/log/cron.log 2>&1' 

使它工作,并执行(methodhere)。 只要不让它以设定的间隔自动运行。

许多谷歌搜索都没有留下任何东西。

注意:我是RoR的新开发者,所以对此事的任何指导都将不胜感激,谢谢!