DELAYED_JOB Update_attribute в отложенном задании не работает, таблица не обновлена
Я хотел сделать Delayed::Job, который должен выполнять fbLikes (я много публикую на StackOverFlow, но проблема еще не решена) Моя база данных таблицы n имеет имя, id, fbLikes, fbId, url. Вот мои шаги для программы. [Домашняя страница] список компаний -> Создать компанию [Вставить информацию о компании] -> Сохранить fbId, name, id, url НО НЕ FBLIKES -> перенаправить на HomePage [after_save Обновить fbLikes для предыдущей добавленной компании]
Я не уверен, работает ли моя отложенная работа или нет, потому что мои fbLikes в моей модели все еще пустые и не обновлены последними версиями fbLikes. Я не уверен, что есть лучший способ сделать это. Для "граблей заданий: работа" в консоли не отображается фоновая работа.
[МОДЕЛЬ company.rb]
require "delayed_job"
require "count_job.rb"
after_save :fb_likes
def fb_likes
Delayed::Job.enqueue(CountJob.new(self.id))
end
[Библиотека /count_job.rb]
require 'net/http'
require 'company.rb'
class CountJob < Struct.new(:id)
def perform
@company = Company.find(id)
uri = URI("http://graph.facebook.com/#{@company.fbId}")
data = Net::HTTP.get(uri)
@company.fbLikes= JSON.parse(data)['likes']
@company.save!
end
end
1 ответ
[МОДЕЛЬ company.rb]
require "delayed_job"
require "count_job.rb"
after_save :fb_likes
def fb_likes
Delayed::Job.enqueue(CountJob.new(self.id))
end
[Библиотека /count_job.rb]
require 'net/http'
require 'company.rb'
class CountJob < Struct.new(:id)
def perform
@company = Company.find(id)
uri = URI("http://graph.facebook.com/#{@company.fbId}")
data = Net::HTTP.get(uri)
@company.fbLikes= JSON.parse(data)['likes']
@company.save!
end
end