Module: ActiveJob::Temporal::Inspect

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

Constant Summary collapse

UUID_REGEX =
/\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/i
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)


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

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

.failed?(job_class, job_id) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.running?(job_class, job_id) ⇒ Boolean

Returns:

  • (Boolean)


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

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
# 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_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