Когда бы не работал планировщик ruby, чего мне не хватает? - PullRequest
1 голос
/ 22 сентября 2011

Не могу заставить это работать ...

В моем 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

Есть идеи?

Спасибо Лука

1 Ответ

4 голосов
/ 22 сентября 2011

Вы запускали команду whenever в своей консоли?

Ваш код фактически не создает cronjob, он просто предоставляет входные данные для каждого драгоценного камня, который должен быть превращен в настоящий cronjob.

Чтобы сделать это, вам нужно cd в корневой каталог приложений и выполнить следующую команду:

whenever --update-crontab YOUR_APP_NAME

Насколько я знаю, YOUR_APP_NAME не имеетчтобы быть вашим настоящим именем приложения, оно должно быть просто уникальным идентификатором.Однако я считаю хорошей практикой использовать ваше имя приложения, чтобы избежать путаницы.

...