Module: ActiveJob::Temporal::Inspect

Defined in:
lib/activejob/temporal/inspect.rb

Constant Summary collapse

JOB_CLASS_NAME_PATTERN =
/\A[A-Z]\w*(?:::[A-Z]\w*)*\z/
WORKFLOW_STATES =
{
  Temporalio::Client::WorkflowExecutionStatus::RUNNING => :running,
  Temporalio::Client::WorkflowExecutionStatus::COMPLETED => :completed,
  Temporalio::Client::WorkflowExecutionStatus::FAILED => :failed,
  Temporalio::Client::WorkflowExecutionStatus::CANCELED => :canceled,
  Temporalio::Client::WorkflowExecutionStatus::TERMINATED => :terminated,
  Temporalio::Client::WorkflowExecutionStatus::CONTINUED_AS_NEW => :continued_as_new,
  Temporalio::Client::WorkflowExecutionStatus::TIMED_OUT => :timed_out
}.freeze

Class Method Summary collapse

Class Method Details

.completed?(job_class, job_id) ⇒ Boolean

Returns:

  • (Boolean)


41
# File 'lib/activejob/temporal/inspect.rb', line 41

def completed?(job_class, job_id) = workflow_state?(job_class, job_id, :completed)

.failed?(job_class, job_id) ⇒ Boolean

Returns:

  • (Boolean)


43
# File 'lib/activejob/temporal/inspect.rb', line 43

def failed?(job_class, job_id) = workflow_state?(job_class, job_id, :failed)

.running?(job_class, job_id) ⇒ Boolean

Returns:

  • (Boolean)


39
# File 'lib/activejob/temporal/inspect.rb', line 39

def running?(job_class, job_id) = workflow_state?(job_class, job_id, :running)

.status(job_class, job_id) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/activejob/temporal/inspect.rb', line 24

def status(job_class, job_id)
  validate_job_class!(job_class)
  validate_job_id!(job_id)

  client = ActiveJob::Temporal.client
  describe_schedule_execution_workflow(client, job_id) ||
    describe_default_workflow(client, job_class, job_id) ||
    describe_search_attribute_workflow(client, job_class, job_id)
rescue ArgumentError
  raise
rescue StandardError => e
  raise ActiveJob::Temporal::TemporalConnectionError,
        "Failed to inspect Temporal workflow for job_id #{job_id}: #{e.message}"
end