What are the pros and cons of doing the following in ActiveJob:
Option A:
# Controller
MyJob.perform_later(object.id)
# my_job.rb
def perform(object_id)
object = Object.find(object_id)
# do stuff
end
Option B:
# Controller
MyJob.perform_later(object)
# my_job.rb
def perform(object)
# do stuff
end
ActiveJob
now uses the newGlobalid
library behind the scenes to serialize/deserialize an ActiveRecord instance, therefore you can now pass anActiveRecord
object.I personally prefer to keep passing the ID as it makes the code more interoperable with other components and it doesn't tie my code indefinitely to a specific
ActiveJob
behavior, but this is more a personal choice.