어떤 시점에서 fb의 데이터를 데이터베이스와 동기화해야하는 응용 프로그램을 구축 중이므로 지연된 작업을 사용하여 백그라운드로 밀어 넣으려고합니다 (attemtping). Delayed Job 클래스의 일부분은 다음과 같습니다. lib/RsvpHelper.rb
에서 RsvpHelper
수준의 생활로지연된 작업이 작동하지 않습니다.
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
. 그래서 내 신청서의 어느 시점에서 유효한 유효 사용자로 Delayed::Job.enqueue(FbSyncJob.new(user.id))
으로 전화합니다. 심지어 설정 작업자는 작업이 성공적으로 완료되었음을 알려줍니다 :
1 jobs processed at 37.1777 j/s, 0 failed
을하지만 나는 그가 그의 친구 목록을 업데이트했다되지 않은 데이터베이스에서 사용자를 확인할 때. 내가 뭐 잘못 했나? 뭐? 도움을 많이 주셔서 감사 드리며 이로 인해 저를 미치게했습니다.
이 읽기 쉬울 것'지연 :: Worker.delay_jobs = Rails.env.production' – Lane
@Lane - 환경 준비에 대해 무엇을? – house9