Rails, using whenever gem in development

雨燕双飞 提交于 2019-12-17 15:24:19

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!