2013-08-03 7 views
0

Я написал cronjob, но он не приступит к работе, хотя я обновил свое расписание.rb. Я использовал javan/всякий раз. Я использую:Ruby on rails: Всякий раз, когда/cronjob не работает

ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.3.0] 

Когда я CRONTAB -l:

# Begin Whenever generated tasks for: company_list 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 
* * * * * /bin/bash -l -c 'cd /Users/-/rails_projects/company_list && script/rails runner -e production '\''Company.update_all_likes'\'' >> /Users/-/rails_projects/company_list/log/cron.log 2>&1' 
# End Whenever generated tasks for: company_list 

Это мой schedule.rb

set :output, "#{path}/log/cron.log" 
env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' 


every 1.minute do 
    runner "Company.update_all_likes" 
end 

Компания Модель:

def update_all_likes 
    $i = 0 
    while $i < Company.size do 
     uri = URI("http://graph.facebook.com/" + Company.find[$i].fbid) 
     data = Net::HTTP.get(uri) 
     update_attribute(:likes,JSON.parse(data)['likes']) 
     $i +=1 
    end  
end 

Журнал ошибок (обновлено 2):

/Users/=/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.13/lib/rails/commands/runner.rb:53:in `eval': Could not find table 'companies' (ActiveRecord::StatementInvalid) 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/connection_adapters/sqlite_adapter.rb:346:in `columns' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/connection_adapters/schema_cache.rb:12:in `block in initialize' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:228:in `yield' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:228:in `default' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:228:in `columns' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:248:in `column_names' 
from /Users/=/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.2.13/lib/active_record/relation/calculations.rb:221:in `aggregate_column' 

ответ

1

Похоже, что существует проблема с вашим файлом production.rb, строка 69. Есть идеи, что это такое?

Кроме того, для того, чтобы начать cronjob написанный с использованием каждый раз, когда, вам нужно запустить

whenever --update-crontab uniquejobname 

где uniquejobname некоторая идентификатор cronjob

+0

я уже заявил, что. Я должен начинать cronjob каждый раз, используя команду «when -update-crontab uniquejobname»? –

+0

Нет, вам нужно только запустить его один раз, и он установит ваш файл cronjob для вас (обратите внимание, что вам нужно запустить его снова, если вы вообще обновите schedule.rb). Похоже, ваша среда cron не работает с той же средой, что и ваше приложение. Ваш cron говорит, что работа предназначена для производственной среды, это где вы пытаетесь ее запустить? – bmac151

+0

Мне нужно проверить его локально, поэтому я догадался, что мне это нужно и в разработке? В дальнейшем мне это понадобится в Героку для производства. Я не знаю, где это проверить. @ bmac151 –

Смежные вопросы