Я полагаю, что это вызвано тем, что вы отправляете объекты в качестве аргументов на работу (по крайней мере, я предполагаю, что current_user и object на самом деле являются объектами, а не идентификаторами). Вместо этого отправьте идентификаторы и начните с загрузки объектов, когда начнется выполнение.
Например:
Delayed::Job.enqueue(BackgroundProcess.new(current_user.id, object.id))
class BackgroundProcess < Struct.new(:user_id, :object_id)
def perform
@current_user = User.find(user_id)
@object = Object.find(object_id)
...
end
end
Таким образом, не возникает никаких проблем с сериализацией ActiveRecord в базу данных, и вы всегда будете загружать последние изменения при запуске задания.