Sha256: 4631ab0df330ae99504c0646a54989d420b9eb024d68131e57f1e2c351f5c801

Contents?: true

Size: 633 Bytes

Versions: 2

Compression:

Stored size: 633 Bytes

Contents

# A proxy for managing jobs without having to load the corresponding
# job class.
#
# This is useful for managing jobs without having the job classes
# present in the code base.
class ActiveJob::JobProxy < ActiveJob::Base
  class UnsupportedError < StandardError; end

  attr_reader :job_class_name

  def initialize(job_data)
    super
    @job_class_name = job_data["job_class"]
    deserialize(job_data)
  end

  def serialize
    super.tap do |json|
      json["job_class"] = @job_class_name
    end
  end

  def perform_now
    raise UnsupportedError, "A JobProxy doesn't support immediate execution, only enqueuing."
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mission_control-jobs-0.1.1 lib/active_job/job_proxy.rb
mission_control-jobs-0.1.0 lib/active_job/job_proxy.rb