问题
Sorry quick question here from a relative Rails newbie. I'm trying to use the Whenever gem to schedule a number of rake tasks. I can't for the life of me get it to actually begin running the cron jobs on my development machine.
Judging from other stackoverflow threads, it appears I should add this:
set :environment, "development"
to my schedule.rb file. But then what?
And then how do I stop the cron jobs once they've started?
Using Rails 3.2.3 in OSX
UPDATE: the answer is to run $ whenever -w
which writes the cron job to a crontab file. The system then immediately starts running that crontab file automatically.
Unfortunately, my logfile for whenever contains the following:
"rake aborted! Don't know how to build task <task name>"
I'm thinking this might be due to the known crontab/rvm issue, but any suggestions are welcome.
回答1:
Clear existing cron jobs.
crontab -r
Update cronjob with the environment.
whenever --update-crontab --set environment='development'
回答2:
You can use the whenever
command and its various options to manipulate your crontab.
$ whenever --help
Usage: whenever [options]
-i [identifier], Default: full path to schedule.rb file
--update-crontab
-w, --write-crontab [identifier] Default: full path to schedule.rb file
-c, --clear-crontab [identifier]
-s, --set [variables] Example: --set 'environment=staging&path=/my/sweet/path'
-f, --load-file [schedule file] Default: config/schedule.rb
-u, --user [user] Default: current user
-k, --cut [lines] Cut lines from the top of the cronfile
-v, --version
回答3:
whenever -c cron-name #removing cronjobs
回答4:
Adding following line of code on top of config/schedule.rb worked for me.
ENV['RAILS_ENV'] = "development"
来源:https://stackoverflow.com/questions/11514968/rails-using-whenever-gem-in-development