【发布时间】:2013-03-14 03:29:07
【问题描述】:
我正在构建一个应用程序,有时我需要将 fb 中的一堆数据与我的数据库同步,因此我(尝试)使用延迟作业将其推送到后台。这是我的延迟作业类的一部分。
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
但是,当我检查数据库中的用户时,他的朋友列表没有更新。我做错了什么还是什么?非常感谢您的帮助,这让我发疯了。
【问题讨论】:
标签: ruby-on-rails mongoid delayed-job