Rails, using whenever gem in development
Asked Answered
C

4

44

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.

Curdle answered 17/7, 2012 at 1:42 Comment(0)
T
80

Clear existing cron jobs.

crontab -r

Update cronjob with the environment.

whenever --update-crontab --set environment='development'
Takishatakken answered 26/2, 2013 at 11:22 Comment(2)
I would like to see a more informative description of exactly what these commands do, aimed at a beginner!Bridgettebridgewater
"crontab -r" Clear all current cron jobs whenever --update-crontab --set environment='development'Banbury
M
8

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
Mathison answered 17/7, 2012 at 1:49 Comment(3)
Thanks. What I didn't realize was that once you write to the crontab file using whenever -w, the crontab start running automatically (i.e. you don't have to do anything else to execute it.) Unfortunately, my logfile for whenever says "rake aborted! Don't know how to build task <task name>" The rake task works on its own just using $ rake from the command prompt. Any suggestions?Curdle
You probably have incorrect syntax somewhere in the task or whenever event. Try to get a more informative stack trace.Mathison
Doing some searching around, it appears this may be an issue with RVM, which apparently has some problems with Whenever. Any suggestions on this would be most appreciated.Curdle
N
2
whenever -c cron-name  #removing cronjobs 
Narvik answered 17/7, 2012 at 8:59 Comment(0)
B
-2

Adding following line of code on top of config/schedule.rb worked for me.

 ENV['RAILS_ENV'] = "development"
Bemba answered 2/12, 2015 at 12:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.