выполнение, которое не вызывается для отложенных заданий

#ruby-on-rails #ruby-on-rails-3 #delayed-job

#ruby-on-rails #ruby-on-rails-3 #отложенное задание

Вопрос:

Я использую delayed_job 2.1.4 из collectiveidea, и, похоже, метод perform никогда не вызывается, даже если задания обработаны и удалены из очереди. Я что-то упускаю?

Я использую Rails 3.0.5 на Heroku

В контроллере:

 Delayed::Job.enqueue FacebookJob.new
  

В классе Job:

 class FacebookJob
  def initialize
  end

  def perform
    fb_auths = Authentication.where(:provider => 'facebook')
    fb_auths.each do |auth|
      checkins = FbGraph::User.new('me', :access_token => URI.encode(auth.token)).checkins
      if checkins != nil 
        checkins.each do |checkin|
          [...]
        end
      end
    end
  end
end
  

(весь код:https://gist.github.com/966509 )

Ответ №1:

Простой ответ: известно ли DelayedJob о классах аутентификации и FBGraph::User? В противном случае вы увидите именно то поведение, которое вы описали: элементы будут автоматически удалены из очереди.