无法在rails 3中使用cronjob

我参考https://github.com/javan/whenever,按照所有步骤进行操作

在schedule.rb中

require 'yaml' set :environment, 'production' set :output, { :error => "/log/error.log", :standard => "/log/cron.log" } every 1.minute do runner "User.weekly_update" end 

在gemfile中

 gem 'whenever', :require => false 

输出一些命令

localhost:〜/ project $ when -i

 [write] crontab file updated 

localhost:〜/ project $ crontab -l

 # Begin Whenever generated tasks for: /home/bacancy/project/config/schedule.rb * * * * * /bin/bash -l -c 'cd /home/bacancy/project && script/rails runner -e production '\''User.weekly_update'\'' >> /log/cron.log 2>> /log/error.log' # End Whenever generated tasks for: /home/bacancy/project/config/schedule.rb # Begin Whenever generated tasks for: store * * * * * /bin/bash -l -c 'cd /home/bacancy/project && script/rails runner -e development '\''User.weekly_update'\''' # End Whenever generated tasks for: store # Begin Whenever generated tasks for: lapulguilla # End Whenever generated tasks for: lapulguilla 

然后我输入

localhost:〜/ project $

 * * * * * /bin/bash -l -c 'cd /home/bacancy/project && script/rails runner -e production '\''User.weekly_update'\'' >> /log/cron.log 2>> /log/error.log' ## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated. ## [message] Run `whenever --help' for more options. 

在用户模型中,我有自定义self.weekly_update

 def self.weekly_update puts "cronjobs is called in every minutes" end 

你的一切都是正确的,只是你说要在背景中打印一些东西,所以它就是这样做你能够观察它。

相反,你应该尝试创建或销毁一些记录,以感受我认为的变化:)