Я создаю приложение, где в какой-то момент мне нужно синхронизировать кучу данных из fb с моей базой данных, поэтому я (attemtping) использую Delayed Job, чтобы вставить это в фоновый режим. Вот как выглядит часть моего класса 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
Однако при проверке пользователя в базе данных он не имел его список друзей обновляется. Я что-то делаю неправильно или что? Большое спасибо за помощь, которая сводила меня с ума.
Это было бы легче читать: 'Задержка :: Worker.delay_jobs = Rails.env.production' – Lane
@Lane - что о постановке окружающей среды? – house9