Class: Temporalio::Internal::Worker::WorkflowWorker::State
- Inherits:
-
Object
- Object
- Temporalio::Internal::Worker::WorkflowWorker::State
- Defined in:
- lib/temporalio/internal/worker/workflow_worker.rb
Instance Attribute Summary collapse
-
#bridge_worker ⇒ Object
readonly
Returns the value of attribute bridge_worker.
-
#data_converter ⇒ Object
readonly
Returns the value of attribute data_converter.
-
#deadlock_timeout ⇒ Object
readonly
Returns the value of attribute deadlock_timeout.
-
#disable_eager_activity_execution ⇒ Object
readonly
Returns the value of attribute disable_eager_activity_execution.
-
#illegal_calls ⇒ Object
readonly
Returns the value of attribute illegal_calls.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#metric_meter ⇒ Object
readonly
Returns the value of attribute metric_meter.
-
#namespace ⇒ Object
readonly
Returns the value of attribute namespace.
-
#on_eviction ⇒ Object
writeonly
Sets the attribute on_eviction.
-
#task_queue ⇒ Object
readonly
Returns the value of attribute task_queue.
-
#unsafe_workflow_io_enabled ⇒ Object
readonly
Returns the value of attribute unsafe_workflow_io_enabled.
-
#workflow_definitions ⇒ Object
readonly
Returns the value of attribute workflow_definitions.
-
#workflow_failure_exception_types ⇒ Object
readonly
Returns the value of attribute workflow_failure_exception_types.
-
#workflow_interceptors ⇒ Object
readonly
Returns the value of attribute workflow_interceptors.
Instance Method Summary collapse
- #evict_all ⇒ Object
- #evict_running_workflow(run_id, cache_remove_job) ⇒ Object
-
#get_or_create_running_workflow(run_id) ⇒ Object
This can never be called at the same time for the same run ID on the same state object.
-
#initialize(workflow_definitions:, bridge_worker:, logger:, metric_meter:, data_converter:, deadlock_timeout:, illegal_calls:, namespace:, task_queue:, disable_eager_activity_execution:, workflow_interceptors:, workflow_failure_exception_types:, unsafe_workflow_io_enabled:) ⇒ State
constructor
A new instance of State.
Constructor Details
#initialize(workflow_definitions:, bridge_worker:, logger:, metric_meter:, data_converter:, deadlock_timeout:, illegal_calls:, namespace:, task_queue:, disable_eager_activity_execution:, workflow_interceptors:, workflow_failure_exception_types:, unsafe_workflow_io_enabled:) ⇒ State
Returns a new instance of State.
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 193 def initialize( workflow_definitions:, bridge_worker:, logger:, metric_meter:, data_converter:, deadlock_timeout:, illegal_calls:, namespace:, task_queue:, disable_eager_activity_execution:, workflow_interceptors:, workflow_failure_exception_types:, unsafe_workflow_io_enabled: ) @workflow_definitions = workflow_definitions @bridge_worker = bridge_worker @logger = logger @metric_meter = metric_meter @data_converter = data_converter @deadlock_timeout = deadlock_timeout @illegal_calls = illegal_calls @namespace = namespace @task_queue = task_queue @disable_eager_activity_execution = disable_eager_activity_execution @workflow_interceptors = workflow_interceptors @workflow_failure_exception_types = workflow_failure_exception_types @unsafe_workflow_io_enabled = unsafe_workflow_io_enabled @running_workflows = {} @running_workflows_mutex = Mutex.new end |
Instance Attribute Details
#bridge_worker ⇒ Object (readonly)
Returns the value of attribute bridge_worker.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def bridge_worker @bridge_worker end |
#data_converter ⇒ Object (readonly)
Returns the value of attribute data_converter.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def data_converter @data_converter end |
#deadlock_timeout ⇒ Object (readonly)
Returns the value of attribute deadlock_timeout.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def deadlock_timeout @deadlock_timeout end |
#disable_eager_activity_execution ⇒ Object (readonly)
Returns the value of attribute disable_eager_activity_execution.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def disable_eager_activity_execution @disable_eager_activity_execution end |
#illegal_calls ⇒ Object (readonly)
Returns the value of attribute illegal_calls.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def illegal_calls @illegal_calls end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def logger @logger end |
#metric_meter ⇒ Object (readonly)
Returns the value of attribute metric_meter.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def metric_meter @metric_meter end |
#namespace ⇒ Object (readonly)
Returns the value of attribute namespace.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def namespace @namespace end |
#on_eviction=(value) ⇒ Object (writeonly)
Sets the attribute on_eviction
191 192 193 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 191 def on_eviction=(value) @on_eviction = value end |
#task_queue ⇒ Object (readonly)
Returns the value of attribute task_queue.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def task_queue @task_queue end |
#unsafe_workflow_io_enabled ⇒ Object (readonly)
Returns the value of attribute unsafe_workflow_io_enabled.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def unsafe_workflow_io_enabled @unsafe_workflow_io_enabled end |
#workflow_definitions ⇒ Object (readonly)
Returns the value of attribute workflow_definitions.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def workflow_definitions @workflow_definitions end |
#workflow_failure_exception_types ⇒ Object (readonly)
Returns the value of attribute workflow_failure_exception_types.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def workflow_failure_exception_types @workflow_failure_exception_types end |
#workflow_interceptors ⇒ Object (readonly)
Returns the value of attribute workflow_interceptors.
187 188 189 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 187 def workflow_interceptors @workflow_interceptors end |
Instance Method Details
#evict_all ⇒ Object
232 233 234 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 232 def evict_all @running_workflows_mutex.synchronize { @running_workflows.clear } end |
#evict_running_workflow(run_id, cache_remove_job) ⇒ Object
227 228 229 230 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 227 def evict_running_workflow(run_id, cache_remove_job) @running_workflows_mutex.synchronize { @running_workflows.delete(run_id) } @on_eviction&.call(run_id, cache_remove_job) end |
#get_or_create_running_workflow(run_id) ⇒ Object
This can never be called at the same time for the same run ID on the same state object
217 218 219 220 221 222 223 224 225 |
# File 'lib/temporalio/internal/worker/workflow_worker.rb', line 217 def get_or_create_running_workflow(run_id, &) instance = @running_workflows_mutex.synchronize { @running_workflows[run_id] } # If instance is not there, we create it out of lock then store it under lock unless instance instance = yield @running_workflows_mutex.synchronize { @running_workflows[run_id] = instance } end instance end |