2013-08-03 3 views
0

나는 cronjob을 썼지 만, 나의 schedule.rb를 업데이트했지만 작동하지 않을 것이다. 언제나 javan을 사용했습니다. 내가 사용하고 있습니다 :Ruby on rails :/cronjob이 작동하지 않을 때마다

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

내가 -l crontab에 때 :

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 

오류 로그 (: 이것은 내 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 

회사 모델

# 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 

입니다 updated 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 호에 문제가있는 것 같습니다. 어떤 아이디어입니까?

또한, 당신은 uniquejobname는 cronjob를

+0

에 대한 몇 가지 식별자입니다

whenever --update-crontab uniquejobname 

를 실행해야 할 때마다, 사용 기록 cron 작업을 시작하기 위해 나는 이미 선언했다. 나는 매번 "언제 --update-crontab uniquejobname"명령을 사용하여 cronjob을 시작해야합니까? –

+0

아니요, 한 번만 실행하면 cronjob 파일이 설정됩니다 (schedule.rb를 전혀 업데이트하지 않으면 다시 실행해야 함). cron 환경이 앱과 동일한 환경에서 실행되지 않는 것 같습니다. cron은 프로덕션 환경을위한 작업이라고 말하면서 어디에서 실행하려고합니까? – bmac151

+0

로컬에서 테스트해야하므로 개발 중에도 필요하다고 생각 했습니까? 나는 Heroku에서 생산을 위해 나중에 그것을 필요로 할 것이다. 나는 이것을 어디서 확인할 수 있을지 모르겠습니다. @ bmac151 –

관련 문제