我正在建立一個應用程序,在某些時候我需要從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
然而,當我在他已經沒有他的朋友列表更新數據庫檢查該用戶。我做錯了什麼?非常感謝這幫助我一直讓我瘋狂。
這將是更容易閱讀:'延遲:: Worker.delay_jobs = Rails.env.production' – Lane 2014-02-12 15:44:50
@Lane - 有關暫存環境是什麼? – house9 2014-02-12 16:46:07