Использование delayed_job для постановки в очередь метода из гема в приложении Rails - PullRequest
0 голосов
/ 26 февраля 2011

Я бы хотел поставить в очередь метод upload_to_scribed (из гема scribd_fu ) с использованием delayed_job.

Есть ли способ, которым я могу сделать это без изменения самого камня?

1 Ответ

1 голос
/ 27 февраля 2011

Вам не нужно делать ничего особенного, чтобы заставить это работать. Например, вы можете сделать что-то вроде этого:

ScribdFu.new.delay.upload_to_scribd

Если вы хотите, вы можете также обернуть это в свою функцию или модель:

class Attachment
  def upload
    ScribdFu.new(self).upload_to_scribd
  end
end

Attachment.first.delay.upload

P.S .: Я не знаю, правильный ли мой синтаксис для вызовов к гему ScribdFu, но вы должны быть в состоянии использовать метод задержки таким образом, чтобы поставить в очередь отложенное задание.

Чтобы выполнить то, что вы хотите в своем комментарии, создайте файл с именем (config / initializers / delay_scribed.rb) и добавьте в него следующее:

module ScribdFu
  module InstanceMethod
    handle_asynchronously :upload_to_scribd
  end
end

Это будет означать, что всякий раз, когда эта функция вызывается, она будет вызываться в отложенном задании, без необходимости явно вызывать задержку для метода. конец

...