每当ruby调度程序不起作用时,我错过了什么?

无法使其有效……

在我的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 

任何的想法 ?

谢谢卢卡

你在控制台中运行了whenever命令吗?

你的代码实际上并没有创建一个cronjob,它只是为必须转换为实际cronjob的gem提供输入数据。

要完成此操作,您必须进入应用程序根目录并运行以下命令:

 whenever --update-crontab YOUR_APP_NAME 

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

Interesting Posts