Rails,在开发中使用gem时使用

时间:2012-07-17 01:42:48

标签: ruby-on-rails whenever

对不起快速问题来自相关的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 个答案:

答案 0 :(得分:65)

清除现有的cron作业。

crontab -r

使用环境更新cronjob。

whenever --update-crontab --set environment='development'

答案 1 :(得分:6)

您可以使用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

答案 2 :(得分:2)

whenever -c cron-name  #removing cronjobs 

答案 3 :(得分:0)

在config / schedule.rb之上添加以下代码行为我工作。

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id)overlay {

if ([overlay isKindOfClass:[MKPolyline class]]) {
    self.lineView = [[MKPolylineView alloc]initWithPolyline:(MKPolyline*)overlay] ;
    self.lineView.strokeColor = [[UIColor redColor] colorWithAlphaComponent:1];
    self.lineView.lineWidth = 1;
    return self.lineView;
}
return nil;
}