44

抱歉,来自一个相对的 Rails 新手的快速问题。我正在尝试使用Whenever gem 来安排一些 rake 任务。我一辈子都无法让它真正开始在我的开发机器上运行 cron 作业。

从其他stackoverflow线程来看,看来我应该添加这个:

set :environment, "development"

到我的 schedule.rb 文件。但是然后呢?

然后如何在 cron 作业开始后停止它们?

在 OSX 中使用 Rails 3.2.3

更新:答案是运行$ whenever -w将 cron 作业写入 crontab 文件。然后系统立即开始自动运行该 crontab 文件。

不幸的是,我的日志文件无论何时都包含以下内容: "rake aborted! Don't know how to build task <task name>"

我认为这可能是由于已知的 crontab/rvm 问题,但欢迎提出任何建议。

4

4 回答 4

78

清除现有的 cron 作业。

crontab -r

使用环境更新 cronjob。

whenever --update-crontab --set environment='development'
于 2013-02-26T11:22:43.983 回答
8

您可以使用该whenever命令及其各种选项来操作您的 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
于 2012-07-17T01:49:26.217 回答
2
whenever -c cron-name  #removing cronjobs 
于 2012-07-17T08:59:26.260 回答
-1

在 config/schedule.rb 之上添加以下代码行对我有用。

 ENV['RAILS_ENV'] = "development"
于 2015-12-02T12:43:27.633 回答