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 に変換する必要がある when ジェムの入力データを提供するだけです。

これを行うにはcd、アプリのルート ディレクトリに移動し、次のコマンドを実行する必要があります。

whenever --update-crontab YOUR_APP_NAME

私の知る限りYOUR_APP_NAME、実際のアプリ名である必要はありません。一意の識別子である必要があります。ただし、混乱を避けるためにアプリ名を使用することをお勧めします。

于 2011-09-22T00:32:31.623 に答える