13

ActiveJob で次のことを行うことの長所と短所は何ですか。

オプション A:

# Controller
MyJob.perform_later(object.id)

# my_job.rb
def perform(object_id)
  object = Object.find(object_id)
  # do stuff
end

オプション B:

# Controller
MyJob.perform_later(object)

# my_job.rb
def perform(object)
  # do stuff
end
4

1 に答える 1

14

ActiveJob、バックグラウンドで新しいGlobalidライブラリActiveRecordを使用して ActiveRecord インスタンスをシリアライズ/デシリアライズするため、オブジェクトを渡すことができるようになりました。

個人的には、コードを他のコンポーネントとより相互運用できるようにし、コードを特定の動作に無期限に結び付けないため、ID を渡し続けることを好みますActiveJobが、これはより個人的な選択です。

于 2015-06-21T09:26:19.680 に答える