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'
에 대한 몇 가지 식별자입니다
를 실행해야 할 때마다, 사용 기록 cron 작업을 시작하기 위해 나는 이미 선언했다. 나는 매번 "언제 --update-crontab uniquejobname"명령을 사용하여 cronjob을 시작해야합니까? –
아니요, 한 번만 실행하면 cronjob 파일이 설정됩니다 (schedule.rb를 전혀 업데이트하지 않으면 다시 실행해야 함). cron 환경이 앱과 동일한 환경에서 실행되지 않는 것 같습니다. cron은 프로덕션 환경을위한 작업이라고 말하면서 어디에서 실행하려고합니까? – bmac151
로컬에서 테스트해야하므로 개발 중에도 필요하다고 생각 했습니까? 나는 Heroku에서 생산을 위해 나중에 그것을 필요로 할 것이다. 나는 이것을 어디서 확인할 수 있을지 모르겠습니다. @ bmac151 –