1

不能让它工作...

在我的 config/schedule.rb 我有:

set :output, '../log/development.log'

every 5.minutes do
  runner "UserWatchedRepo.update"
end

注意设置的日志,但没有任何反应。在我的 Rails 3.0.10 模型文件 app/models/user_watched_repo.rb 我得到:

class UserWatchedRepo
  include Mongoid::Document

  def update
    conn = FaradayStack.build 'https://api.github.com'
    User.all.map do |user| 
      nickname = user.nickname
      resp = conn.get "/users/#{nickname}/watched"

      resp.body.each do |repo|
        user.watchlists.build( html_url: "#{repo['html_url']}",
                               description: "#{repo['description']}",
                               fork_: "#{repo['fork']}",
                               forks: "#{repo['forks']}",
                               watchers: "#{repo['watchers']}",
                               created_at: "#{repo['created_at']}",
                               pushed_at: "#{repo['pushed_at']}",
                               avatar_url: "#{repo['owner']['avatar_url']}" )
      end
      user.save!
    end
  end
end

任何的想法 ?

谢谢卢卡

4

1 回答 1

4

您是否在控制台中运行了该whenever命令?

您的代码实际上并没有创建 cronjob,它只是为必须转换为实际 cronjob 的任何时候的 gem 提供输入数据。

为此,您必须cd进入您的应用程序根目录并运行以下命令:

whenever --update-crontab YOUR_APP_NAME

据我所知,YOUR_APP_NAME不一定是您的实际应用名称,它只是一个唯一标识符。我认为使用您的应用名称以避免混淆是一种很好的做法。

于 2011-09-22T00:32:31.623 回答