Class: Temporalio::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/temporalio/client.rb,
lib/temporalio/client/implementation.rb,
lib/temporalio/client/workflow_handle.rb

Defined Under Namespace

Classes: Implementation, WorkflowHandle

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection, namespace, interceptors: [], data_converter: Temporalio::DataConverter.new) ⇒ Client

Create a Temporal client from a connection.



28
29
30
31
32
33
34
35
36
# File 'lib/temporalio/client.rb', line 28

def initialize(
  connection,
  namespace,
  interceptors: [],
  data_converter: Temporalio::DataConverter.new
)
  @namespace = namespace
  @implementation = Client::Implementation.new(connection, namespace, data_converter, interceptors)
end

Instance Attribute Details

#namespaceString (readonly)



15
16
17
# File 'lib/temporalio/client.rb', line 15

def namespace
  @namespace
end

Instance Method Details

#start_workflow(workflow, *args, id:, task_queue:, execution_timeout: nil, run_timeout: nil, task_timeout: nil, id_reuse_policy: Workflow::IDReusePolicy::ALLOW_DUPLICATE, retry_policy: nil, cron_schedule: '', memo: nil, search_attributes: nil, start_signal: nil, start_signal_args: [], rpc_metadata: {}, rpc_timeout: nil) ⇒ Temporalio::Client::WorkflowHandle

Start a workflow and return its handle.

Raises:



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/temporalio/client.rb', line 66

def start_workflow( # rubocop:disable Metrics/ParameterLists
  workflow,
  *args,
  id:,
  task_queue:,
  execution_timeout: nil,
  run_timeout: nil,
  task_timeout: nil,
  id_reuse_policy: Workflow::IDReusePolicy::ALLOW_DUPLICATE,
  retry_policy: nil,
  cron_schedule: '',
  memo: nil,
  search_attributes: nil,
  start_signal: nil,
  start_signal_args: [],
  rpc_metadata: {},
  rpc_timeout: nil
)
  input = Interceptor::Client::StartWorkflowInput.new(
    workflow: workflow,
    args: args,
    id: id,
    task_queue: task_queue,
    execution_timeout: execution_timeout,
    run_timeout: run_timeout,
    task_timeout: task_timeout,
    id_reuse_policy: id_reuse_policy,
    retry_policy: retry_policy,
    cron_schedule: cron_schedule,
    memo: memo,
    search_attributes: search_attributes,
    headers: {},
    start_signal: start_signal,
    start_signal_args: start_signal_args,
    rpc_metadata: ,
    rpc_timeout: rpc_timeout,
  )

  implementation.start_workflow(input)
end

#workflow_handle(id, run_id: nil, first_execution_run_id: nil) ⇒ Temporalio::Client::WorkflowHandle

Get a workflow handle to an existing workflow by its ID.



117
118
119
120
121
122
123
124
125
# File 'lib/temporalio/client.rb', line 117

def workflow_handle(id, run_id: nil, first_execution_run_id: nil)
  WorkflowHandle.new(
    implementation,
    id,
    run_id: run_id,
    result_run_id: run_id,
    first_execution_run_id: first_execution_run_id,
  )
end