4

受信メールを処理するために、delayed_jobs (バックグラウンド ワーカー) を使用しようとしています。

class EmailProcessor

  def initialize(email)
    @raw_html = email.raw_html
    @subject = email.subject
  end

  def process
    do something with @raw_html & @subject
  end
  handle_asynchronously :process, :priority => 20

end

問題は、インスタンス変数 (@raw_html & @subject) を遅延ジョブに渡すことができないことです。遅延ジョブは、データをモデルに保存してバックグラウンド タスクで取得するように要求しますが、バックグラウンド ワーカーにタスク全体 (レコードの保存を含む) を完了させたいと考えています。

何かご意見は?

4

1 に答える 1

1

バックグラウンドで実行するメソッドにパラメーターを渡すために使用delayします。

class EmailProcessor

  def self.process(email)
    # do something with the email
  end
end

# Then somewhere down the line:

EmailProcessor.delay.process(email)
于 2016-07-28T12:33:23.273 に答える