Class: Workhorse::Jobs::RunRailsOp

Inherits:
Object
  • Object
show all
Defined in:
lib/workhorse/jobs/run_rails_op.rb

Overview

Job wrapper for executing Rails operations (trailblazer-operation or similar). This job allows enqueuing of operation classes with parameters for later execution.

Examples:

Enqueue an operation

Workhorse.enqueue_op(MyOperation, { user_id: 123 })

Manual instantiation

job = RunRailsOp.new(MyOperation, { user_id: 123 })
Workhorse.enqueue(job)

Instance Method Summary collapse

Constructor Details

#initialize(cls, params = {}) ⇒ RunRailsOp

Creates a new Rails operation job.

Parameters:

  • cls (Class)

    The operation class to execute

  • params (Hash) (defaults to: {})

    Parameters to pass to the operation



16
17
18
19
# File 'lib/workhorse/jobs/run_rails_op.rb', line 16

def initialize(cls, params = {})
  @cls = cls
  @params = params
end

Instance Method Details

#job_classClass

Returns the operation class for this job.

Returns:

  • (Class)

    The operation class



24
25
26
# File 'lib/workhorse/jobs/run_rails_op.rb', line 24

def job_class
  @cls
end

#performvoid

This method returns an undefined value.

Executes the Rails operation with the provided parameters.



31
32
33
# File 'lib/workhorse/jobs/run_rails_op.rb', line 31

def perform
  @cls.run!(@params)
end