私はtobiによってdelayed_jobを実行していますが、delayed_jobを実行すると、fbLikesカウントがすべて間違っており、会社を1つ追加するたびに増加しているようです. ロジックのどこが間違っているのかわかりません。以前にテストした fbLikes メソッドは (delayed_job に変更する前に) 機能し、「1」がどこから来たのかわかりません...
[出力]
coca-cola
http://www.cocacola.com
Likes: 1 <--- Not sure why the fbLikes is 1 and it increment with second company fbLikes is 2 and so on...
.
[Worker(host:aname.local pid:1400)] Starting job worker
[Worker(host:aname.local pid:1400)] CountJob completed after 0.7893
[Worker(host:aname.local pid:1400)] 1 jobs processed at 1.1885 j/s, 0 failed ...
私はモデルでdelayed_jobを実行していて、Facebookのいいねを数えるジョブを実行しようとしています
これが私のコードです。[lib/count_rb.job]
require 'net/http'
class CountJob< Struct.new(:fbid)
def perform
uri = URI("http://graph.facebook.com/#{fbid}")
data = Net::HTTP.get(uri)
return JSON.parse(data)['likes']
end
end
【企業モデル】
before_save :fb_likes
def fb_likes
self.fbLikes = Delayed::Job.enqueue(CountJob.new(self.fbId))
end