ある時点で fb からの大量のデータをデータベースと同期する必要があるアプリケーションを構築しているため、遅延ジョブを使用してこれをバックグラウンドにプッシュしようとしています。私の Delayed Job クラスの一部は次のようになります。
class FbSyncJob < Struct.new(:user_id)
require 'RsvpHelper'
def perform
user = User.find(user_id)
FbSyncJob.sync_user(user)
end
def FbSyncJob.sync_user(user)
friends = HTTParty.get(
"https://graph.facebook.com/me/friends?access_token=#{user.fb['token']}"
)
friends_list = friends["data"].map { |friend| friend["id"] }
user.fb["friends"] = friends_list
user.fb["sync"]["friends"] = Time.now
user.save!
FbSyncJob.friend_crawl(user)
end
end
にRsvpHelper
住むクラスとlib/RsvpHelper.rb
。したがって、アプリケーションのある時点でDelayed::Job.enqueue(FbSyncJob.new(user.id))
、既知の有効なユーザーを呼び出します。私が設定したワーカーは、ジョブが正常に完了したことさえ教えてくれます。
1 jobs processed at 37.1777 j/s, 0 failed
ただし、データベースでユーザーを確認すると、友人リストが更新されていません。私は何か間違ったことをしていますか、それとも何ですか?これが私を夢中にさせてきた助けをありがとう。