temporalio 1.6.0 → 1.6.1.test.only.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of temporalio might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Cargo.lock +9 -17
- data/lib/temporalio/api/activity/v1/message.rb +1 -1
- data/lib/temporalio/api/batch/v1/message.rb +4 -1
- data/lib/temporalio/api/command/v1/message.rb +2 -1
- data/lib/temporalio/api/common/v1/message.rb +2 -1
- data/lib/temporalio/api/enums/v1/activity.rb +1 -1
- data/lib/temporalio/api/enums/v1/batch_operation.rb +1 -1
- data/lib/temporalio/api/enums/v1/common.rb +2 -1
- data/lib/temporalio/api/enums/v1/failed_cause.rb +1 -1
- data/lib/temporalio/api/errordetails/v1/message.rb +2 -1
- data/lib/temporalio/api/history/v1/message.rb +1 -1
- data/lib/temporalio/api/namespace/v1/message.rb +1 -1
- data/lib/temporalio/api/taskqueue/v1/message.rb +2 -1
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +1 -1
- data/lib/temporalio/client/connection.rb +33 -3
- data/lib/temporalio/client/schedule.rb +4 -5
- data/lib/temporalio/client/workflow_execution.rb +2 -2
- data/lib/temporalio/client/workflow_handle.rb +13 -7
- data/lib/temporalio/client.rb +4 -6
- data/lib/temporalio/internal/bridge/client.rb +3 -1
- data/lib/temporalio/internal/bridge/worker.rb +3 -1
- data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +9 -0
- data/lib/temporalio/runtime.rb +2 -2
- data/lib/temporalio/version.rb +1 -1
- data/lib/temporalio/worker/workflow_replayer.rb +2 -0
- data/lib/temporalio/worker.rb +24 -4
- data/lib/temporalio/workflow.rb +8 -9
- data/rbi/temporalio/api/activity/v1/message.rbi +78 -12
- data/rbi/temporalio/api/batch/v1/message.rbi +229 -2
- data/rbi/temporalio/api/command/v1/message.rbi +22 -2
- data/rbi/temporalio/api/common/v1/message.rbi +100 -8
- data/rbi/temporalio/api/enums/v1/activity.rbi +1 -0
- data/rbi/temporalio/api/enums/v1/batch_operation.rbi +9 -0
- data/rbi/temporalio/api/enums/v1/common.rbi +18 -0
- data/rbi/temporalio/api/enums/v1/failed_cause.rbi +3 -0
- data/rbi/temporalio/api/errordetails/v1/message.rbi +59 -2
- data/rbi/temporalio/api/history/v1/message.rbi +22 -2
- data/rbi/temporalio/api/namespace/v1/message.rbi +70 -2
- data/rbi/temporalio/api/taskqueue/v1/message.rbi +113 -2
- data/rbi/temporalio/api/workflowservice/v1/request_response.rbi +379 -57
- data/rbi/temporalio/client/connection.rbi +2 -0
- data/rbi/temporalio/internal/bridge/worker.rbi +2 -0
- data/rbi/temporalio/worker.rbi +9 -2
- data/rbi/temporalio/workflow/future.rbi +1 -1
- data/sig/temporalio/api/activity/v1/message.rbs +37 -2
- data/sig/temporalio/api/batch/v1/message.rbs +86 -0
- data/sig/temporalio/api/command/v1/message.rbs +10 -0
- data/sig/temporalio/api/common/v1/message.rbs +47 -7
- data/sig/temporalio/api/enums/v1/activity.rbs +9 -5
- data/sig/temporalio/api/enums/v1/batch_operation.rbs +33 -3
- data/sig/temporalio/api/enums/v1/common.rbs +23 -0
- data/sig/temporalio/api/enums/v1/failed_cause.rbs +15 -6
- data/sig/temporalio/api/errordetails/v1/message.rbs +19 -0
- data/sig/temporalio/api/history/v1/message.rbs +10 -0
- data/sig/temporalio/api/namespace/v1/message.rbs +32 -0
- data/sig/temporalio/api/taskqueue/v1/message.rbs +44 -0
- data/sig/temporalio/api/workflowservice/v1/request_response.rbs +174 -18
- data/sig/temporalio/client/connection.rbs +14 -1
- data/sig/temporalio/internal/bridge/client.rbs +5 -1
- data/sig/temporalio/internal/bridge/worker.rbs +5 -1
- data/sig/temporalio/worker.rbs +8 -2
- metadata +1 -1
|
@@ -86,13 +86,19 @@ module Temporalio
|
|
|
86
86
|
hist_run_id = result_run_id
|
|
87
87
|
loop do
|
|
88
88
|
# Get close event
|
|
89
|
-
event =
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
event = begin
|
|
90
|
+
fetch_history_events(
|
|
91
|
+
wait_new_event: true,
|
|
92
|
+
event_filter_type: Api::Enums::V1::HistoryEventFilterType::HISTORY_EVENT_FILTER_TYPE_CLOSE_EVENT,
|
|
93
|
+
skip_archival: true,
|
|
94
|
+
specific_run_id: hist_run_id,
|
|
95
|
+
rpc_options:
|
|
96
|
+
).next
|
|
97
|
+
rescue StopIteration
|
|
98
|
+
# Timeskipping server can return empty events with no continuation token, this will surface as an empty
|
|
99
|
+
# iterator.
|
|
100
|
+
next
|
|
101
|
+
end
|
|
96
102
|
|
|
97
103
|
# Check each close type'
|
|
98
104
|
case event.event_type
|
data/lib/temporalio/client.rb
CHANGED
|
@@ -287,11 +287,10 @@ module Temporalio
|
|
|
287
287
|
# @param id [String] Unique identifier for the workflow execution.
|
|
288
288
|
# @param task_queue [String] Task queue to run the workflow on.
|
|
289
289
|
# @param static_summary [String, nil] Fixed single-line summary for this workflow execution that may appear in
|
|
290
|
-
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
290
|
+
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
291
291
|
# @param static_details [String, nil] Fixed details for this workflow execution that may appear in CLI/UI. This can
|
|
292
292
|
# be in Temporal markdown format and can be multiple lines. This is a fixed value on the workflow that cannot be
|
|
293
|
-
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
294
|
-
# experimental.
|
|
293
|
+
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
295
294
|
# @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
|
|
296
295
|
# as new.
|
|
297
296
|
# @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
|
|
@@ -380,11 +379,10 @@ module Temporalio
|
|
|
380
379
|
# @param id [String] Unique identifier for the workflow execution.
|
|
381
380
|
# @param task_queue [String] Task queue to run the workflow on.
|
|
382
381
|
# @param static_summary [String, nil] Fixed single-line summary for this workflow execution that may appear in
|
|
383
|
-
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
382
|
+
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
384
383
|
# @param static_details [String, nil] Fixed details for this workflow execution that may appear in CLI/UI. This can
|
|
385
384
|
# be in Temporal markdown format and can be multiple lines. This is a fixed value on the workflow that cannot be
|
|
386
|
-
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
387
|
-
# experimental.
|
|
385
|
+
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
388
386
|
# @param execution_timeout [Float, nil] Total workflow execution timeout in seconds including retries and continue
|
|
389
387
|
# as new.
|
|
390
388
|
# @param run_timeout [Float, nil] Timeout of a single workflow run in seconds.
|
|
@@ -24,11 +24,13 @@ module Temporalio
|
|
|
24
24
|
:default_heartbeat_throttle_interval,
|
|
25
25
|
:max_worker_activities_per_second,
|
|
26
26
|
:max_task_queue_activities_per_second,
|
|
27
|
+
:max_eager_activity_reservations_per_workflow_task,
|
|
27
28
|
:graceful_shutdown_period,
|
|
28
29
|
:nondeterminism_as_workflow_fail,
|
|
29
30
|
:nondeterminism_as_workflow_fail_for_types,
|
|
30
31
|
:deployment_options,
|
|
31
|
-
:plugins
|
|
32
|
+
:plugins,
|
|
33
|
+
:disable_payload_error_limit
|
|
32
34
|
)
|
|
33
35
|
|
|
34
36
|
TunerOptions = Struct.new(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'temporalio/internal/workflow_task_failure_error'
|
|
3
4
|
require 'temporalio/worker/illegal_workflow_call_validator'
|
|
4
5
|
require 'temporalio/workflow'
|
|
5
6
|
|
|
@@ -92,6 +93,11 @@ module Temporalio
|
|
|
92
93
|
))
|
|
93
94
|
nil
|
|
94
95
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
|
96
|
+
# Errors that invalidate the whole workflow task (e.g. an async DeadlockError landing while the
|
|
97
|
+
# validator runs) must propagate with their class intact so they fail the task instead of being
|
|
98
|
+
# flattened into a NondeterminismError message that futures may store
|
|
99
|
+
raise if e.is_a?(Internal::WorkflowTaskFailureError)
|
|
100
|
+
|
|
95
101
|
", reason: #{e}"
|
|
96
102
|
end
|
|
97
103
|
else
|
|
@@ -108,6 +114,9 @@ module Temporalio
|
|
|
108
114
|
))
|
|
109
115
|
nil
|
|
110
116
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
|
117
|
+
# See workflow-task-failure comment on the class-level validator rescue above
|
|
118
|
+
raise if e.is_a?(Internal::WorkflowTaskFailureError)
|
|
119
|
+
|
|
111
120
|
", reason: #{e}"
|
|
112
121
|
end
|
|
113
122
|
end
|
data/lib/temporalio/runtime.rb
CHANGED
|
@@ -101,8 +101,8 @@ module Temporalio
|
|
|
101
101
|
# @!visibility private
|
|
102
102
|
def _to_bridge
|
|
103
103
|
# @type self: LoggingFilterOptions
|
|
104
|
-
"#{other_level},
|
|
105
|
-
"temporalio_sdk=#{core_level},temporalio_bridge=#{core_level}"
|
|
104
|
+
"#{other_level},temporalio_common=#{core_level},temporalio_sdk_core=#{core_level}," \
|
|
105
|
+
"temporalio_client=#{core_level},temporalio_sdk=#{core_level},temporalio_bridge=#{core_level}"
|
|
106
106
|
end
|
|
107
107
|
end
|
|
108
108
|
|
data/lib/temporalio/version.rb
CHANGED
|
@@ -240,10 +240,12 @@ module Temporalio
|
|
|
240
240
|
default_heartbeat_throttle_interval: 1.0,
|
|
241
241
|
max_worker_activities_per_second: nil,
|
|
242
242
|
max_task_queue_activities_per_second: nil,
|
|
243
|
+
max_eager_activity_reservations_per_workflow_task: 3,
|
|
243
244
|
graceful_shutdown_period: 0.0,
|
|
244
245
|
nondeterminism_as_workflow_fail:,
|
|
245
246
|
nondeterminism_as_workflow_fail_for_types:,
|
|
246
247
|
deployment_options: Worker.default_deployment_options._to_bridge_options,
|
|
248
|
+
disable_payload_error_limit: true,
|
|
247
249
|
plugins: options.plugins.map(&:name).uniq.sort
|
|
248
250
|
)
|
|
249
251
|
)
|
data/lib/temporalio/worker.rb
CHANGED
|
@@ -61,6 +61,7 @@ module Temporalio
|
|
|
61
61
|
:default_heartbeat_throttle_interval,
|
|
62
62
|
:max_activities_per_second,
|
|
63
63
|
:max_task_queue_activities_per_second,
|
|
64
|
+
:max_eager_activity_reservations_per_workflow_task,
|
|
64
65
|
:graceful_shutdown_period,
|
|
65
66
|
:disable_eager_activity_execution,
|
|
66
67
|
:illegal_workflow_calls,
|
|
@@ -71,7 +72,8 @@ module Temporalio
|
|
|
71
72
|
:patch_activation_callback,
|
|
72
73
|
:workflow_task_poller_behavior,
|
|
73
74
|
:activity_task_poller_behavior,
|
|
74
|
-
:debug_mode
|
|
75
|
+
:debug_mode,
|
|
76
|
+
:disable_payload_error_limit
|
|
75
77
|
)
|
|
76
78
|
|
|
77
79
|
# Options as returned from {options} for `**to_h` splat use in {initialize}. See {initialize} for details.
|
|
@@ -415,6 +417,9 @@ module Temporalio
|
|
|
415
417
|
# @param max_task_queue_activities_per_second [Float, nil] Sets the maximum number of activities per second the task
|
|
416
418
|
# queue will dispatch, controlled server-side. Note that this only takes effect upon an activity poll request. If
|
|
417
419
|
# multiple workers on the same queue have different values set, they will thrash with the last poller winning.
|
|
420
|
+
# @param max_eager_activity_reservations_per_workflow_task [Integer] Maximum number of activity slots that may be
|
|
421
|
+
# reserved for eager execution when completing a workflow task. Defaults to 3 and must be positive. To disable
|
|
422
|
+
# eager activity execution, set `disable_eager_activity_execution: true`.
|
|
418
423
|
# @param graceful_shutdown_period [Float] Amount of time after shutdown is called that activities are given to
|
|
419
424
|
# complete before their tasks are canceled.
|
|
420
425
|
# @param disable_eager_activity_execution [Boolean] If true, disables eager activity execution. Eager activity
|
|
@@ -452,6 +457,9 @@ module Temporalio
|
|
|
452
457
|
# @param debug_mode [Boolean] If true, deadlock detection is disabled. Deadlock detection will fail workflow tasks
|
|
453
458
|
# if they block the thread for too long. This defaults to true if the `TEMPORAL_DEBUG` environment variable is
|
|
454
459
|
# `true` or `1`.
|
|
460
|
+
# @param disable_payload_error_limit [Boolean] If true, the worker will not proactively fail workflow/activity
|
|
461
|
+
# tasks whose payloads exceed the namespace error limits; oversized payloads are sent to the server, which
|
|
462
|
+
# enforces the limit. Defaults to false (the worker fails such tasks before sending).
|
|
455
463
|
def initialize(
|
|
456
464
|
client:,
|
|
457
465
|
task_queue:,
|
|
@@ -474,6 +482,7 @@ module Temporalio
|
|
|
474
482
|
default_heartbeat_throttle_interval: 30,
|
|
475
483
|
max_activities_per_second: nil,
|
|
476
484
|
max_task_queue_activities_per_second: nil,
|
|
485
|
+
max_eager_activity_reservations_per_workflow_task: 3,
|
|
477
486
|
graceful_shutdown_period: 0,
|
|
478
487
|
disable_eager_activity_execution: false,
|
|
479
488
|
illegal_workflow_calls: Worker.default_illegal_workflow_calls,
|
|
@@ -484,7 +493,8 @@ module Temporalio
|
|
|
484
493
|
patch_activation_callback: nil,
|
|
485
494
|
workflow_task_poller_behavior: PollerBehavior::SimpleMaximum.new(max_concurrent_workflow_task_polls),
|
|
486
495
|
activity_task_poller_behavior: PollerBehavior::SimpleMaximum.new(max_concurrent_activity_task_polls),
|
|
487
|
-
debug_mode: %w[true 1].include?(ENV['TEMPORAL_DEBUG'].to_s.downcase)
|
|
496
|
+
debug_mode: %w[true 1].include?(ENV['TEMPORAL_DEBUG'].to_s.downcase),
|
|
497
|
+
disable_payload_error_limit: false
|
|
488
498
|
)
|
|
489
499
|
Internal::ProtoUtils.assert_non_reserved_name(task_queue)
|
|
490
500
|
|
|
@@ -510,6 +520,7 @@ module Temporalio
|
|
|
510
520
|
default_heartbeat_throttle_interval:,
|
|
511
521
|
max_activities_per_second:,
|
|
512
522
|
max_task_queue_activities_per_second:,
|
|
523
|
+
max_eager_activity_reservations_per_workflow_task:,
|
|
513
524
|
graceful_shutdown_period:,
|
|
514
525
|
disable_eager_activity_execution:,
|
|
515
526
|
illegal_workflow_calls:,
|
|
@@ -520,7 +531,8 @@ module Temporalio
|
|
|
520
531
|
patch_activation_callback:,
|
|
521
532
|
workflow_task_poller_behavior:,
|
|
522
533
|
activity_task_poller_behavior:,
|
|
523
|
-
debug_mode
|
|
534
|
+
debug_mode:,
|
|
535
|
+
disable_payload_error_limit:
|
|
524
536
|
).freeze
|
|
525
537
|
# Collect applicable client plugins and worker plugins, then validate and apply to options
|
|
526
538
|
@plugins = client.options.plugins.grep(Plugin) + plugins
|
|
@@ -541,6 +553,11 @@ module Temporalio
|
|
|
541
553
|
raise ArgumentError,
|
|
542
554
|
'default_versioning_behavior must be UNSPECIFIED when use_worker_versioning is false'
|
|
543
555
|
end
|
|
556
|
+
unless @options.max_eager_activity_reservations_per_workflow_task.positive?
|
|
557
|
+
raise ArgumentError,
|
|
558
|
+
'max_eager_activity_reservations_per_workflow_task must be positive; ' \
|
|
559
|
+
'use disable_eager_activity_execution: true to disable eager activity execution'
|
|
560
|
+
end
|
|
544
561
|
|
|
545
562
|
should_enforce_versioning_behavior =
|
|
546
563
|
@options.deployment_options.use_worker_versioning &&
|
|
@@ -577,11 +594,14 @@ module Temporalio
|
|
|
577
594
|
default_heartbeat_throttle_interval: @options.default_heartbeat_throttle_interval,
|
|
578
595
|
max_worker_activities_per_second: @options.max_activities_per_second,
|
|
579
596
|
max_task_queue_activities_per_second: @options.max_task_queue_activities_per_second,
|
|
597
|
+
max_eager_activity_reservations_per_workflow_task:
|
|
598
|
+
@options.max_eager_activity_reservations_per_workflow_task,
|
|
580
599
|
graceful_shutdown_period: @options.graceful_shutdown_period,
|
|
581
600
|
nondeterminism_as_workflow_fail:,
|
|
582
601
|
nondeterminism_as_workflow_fail_for_types:,
|
|
583
602
|
deployment_options: @options.deployment_options._to_bridge_options,
|
|
584
|
-
plugins: (@options.client.options.plugins + @options.plugins).map(&:name).uniq.sort
|
|
603
|
+
plugins: (@options.client.options.plugins + @options.plugins).map(&:name).uniq.sort,
|
|
604
|
+
disable_payload_error_limit: @options.disable_payload_error_limit
|
|
585
605
|
)
|
|
586
606
|
)
|
|
587
607
|
|
data/lib/temporalio/workflow.rb
CHANGED
|
@@ -68,7 +68,7 @@ module Temporalio
|
|
|
68
68
|
|
|
69
69
|
# Get current details for this workflow that may appear in UI/CLI. Unlike static details set at start, this value
|
|
70
70
|
# can be updated throughout the life of the workflow. This can be in Temporal markdown format and can span multiple
|
|
71
|
-
# lines.
|
|
71
|
+
# lines.
|
|
72
72
|
#
|
|
73
73
|
# @return [String] Current details. Default is empty string.
|
|
74
74
|
def self.current_details
|
|
@@ -77,7 +77,7 @@ module Temporalio
|
|
|
77
77
|
|
|
78
78
|
# Set current details for this workflow that may appear in UI/CLI. Unlike static details set at start, this value
|
|
79
79
|
# can be updated throughout the life of the workflow. This can be in Temporal markdown format and can span multiple
|
|
80
|
-
# lines.
|
|
80
|
+
# lines.
|
|
81
81
|
#
|
|
82
82
|
# @param details [String] Current details. Can use empty string to unset.
|
|
83
83
|
def self.current_details=(details)
|
|
@@ -136,7 +136,7 @@ module Temporalio
|
|
|
136
136
|
# @param args [Array<Object>] Arguments to the activity.
|
|
137
137
|
# @param task_queue [String] Task queue to run the activity on. Defaults to the current workflow's task queue.
|
|
138
138
|
# @param summary [String, nil] Single-line summary for this activity that may appear in CLI/UI. This can be in
|
|
139
|
-
# single-line Temporal markdown format.
|
|
139
|
+
# single-line Temporal markdown format.
|
|
140
140
|
# @param schedule_to_close_timeout [Float, nil] Max amount of time the activity can take from first being scheduled
|
|
141
141
|
# to being completed before it times out. This is inclusive of all retries.
|
|
142
142
|
# @param schedule_to_start_timeout [Float, nil] Max amount of time the activity can take to be started from first
|
|
@@ -235,7 +235,7 @@ module Temporalio
|
|
|
235
235
|
# @param activity [Class<Activity::Definition>, Symbol, String] Activity definition class or name.
|
|
236
236
|
# @param args [Array<Object>] Arguments to the activity.
|
|
237
237
|
# @param summary [String, nil] Single-line summary for this activity that may appear in CLI/UI. This can be in
|
|
238
|
-
# single-line Temporal markdown format.
|
|
238
|
+
# single-line Temporal markdown format.
|
|
239
239
|
# @param schedule_to_close_timeout [Float, nil] Max amount of time the activity can take from first being scheduled
|
|
240
240
|
# to being completed before it times out. This is inclusive of all retries.
|
|
241
241
|
# @param schedule_to_start_timeout [Float, nil] Max amount of time the activity can take to be started from first
|
|
@@ -393,7 +393,7 @@ module Temporalio
|
|
|
393
393
|
# value cannot be negative. Since Temporal timers are server-side, timer resolution may not end up as precise as
|
|
394
394
|
# system timers.
|
|
395
395
|
# @param summary [String, nil] A simple string identifying this timer that may be visible in UI/CLI. While it can be
|
|
396
|
-
# normal text, it is best to treat as a timer ID.
|
|
396
|
+
# normal text, it is best to treat as a timer ID.
|
|
397
397
|
# @param cancellation [Cancellation] Cancellation for this timer.
|
|
398
398
|
# @raise [Error::CanceledError] Sleep canceled.
|
|
399
399
|
def self.sleep(duration, summary: nil, cancellation: Workflow.cancellation)
|
|
@@ -407,11 +407,10 @@ module Temporalio
|
|
|
407
407
|
# @param id [String] Unique identifier for the workflow execution. Defaults to a new UUID from {random}.
|
|
408
408
|
# @param task_queue [String] Task queue to run the workflow on. Defaults to the current workflow's task queue.
|
|
409
409
|
# @param static_summary [String, nil] Fixed single-line summary for this workflow execution that may appear in
|
|
410
|
-
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
410
|
+
# CLI/UI. This can be in single-line Temporal markdown format.
|
|
411
411
|
# @param static_details [String, nil] Fixed details for this workflow execution that may appear in CLI/UI. This can
|
|
412
412
|
# be in Temporal markdown format and can be multiple lines. This is a fixed value on the workflow that cannot be
|
|
413
|
-
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
414
|
-
# experimental.
|
|
413
|
+
# updated. For details that can be updated, use {Workflow.current_details=} within the workflow.
|
|
415
414
|
# @param cancellation [Cancellation] Cancellation to apply to the child workflow. How cancellation is treated is
|
|
416
415
|
# based on `cancellation_type`. This defaults to the workflow's cancellation.
|
|
417
416
|
# @param cancellation_type [ChildWorkflowCancellationType] How the child workflow will react to cancellation.
|
|
@@ -480,7 +479,7 @@ module Temporalio
|
|
|
480
479
|
# @param message [String] Message to use for timeout exception. Defaults to "execution expired" like
|
|
481
480
|
# {::Timeout.timeout}.
|
|
482
481
|
# @param summary [String] Timer summary for the timer created by this timeout. This is backed by {sleep} so see that
|
|
483
|
-
# method for details.
|
|
482
|
+
# method for details.
|
|
484
483
|
#
|
|
485
484
|
# @yield Block to run with a timeout.
|
|
486
485
|
# @return [Object] The result of the block.
|
|
@@ -98,7 +98,8 @@ class Temporalio::Api::Activity::V1::ActivityOptions
|
|
|
98
98
|
start_to_close_timeout: T.nilable(Google::Protobuf::Duration),
|
|
99
99
|
heartbeat_timeout: T.nilable(Google::Protobuf::Duration),
|
|
100
100
|
retry_policy: T.nilable(Temporalio::Api::Common::V1::RetryPolicy),
|
|
101
|
-
priority: T.nilable(Temporalio::Api::Common::V1::Priority)
|
|
101
|
+
priority: T.nilable(Temporalio::Api::Common::V1::Priority),
|
|
102
|
+
start_delay: T.nilable(Google::Protobuf::Duration)
|
|
102
103
|
).void
|
|
103
104
|
end
|
|
104
105
|
def initialize(
|
|
@@ -108,7 +109,8 @@ class Temporalio::Api::Activity::V1::ActivityOptions
|
|
|
108
109
|
start_to_close_timeout: nil,
|
|
109
110
|
heartbeat_timeout: nil,
|
|
110
111
|
retry_policy: nil,
|
|
111
|
-
priority: nil
|
|
112
|
+
priority: nil,
|
|
113
|
+
start_delay: nil
|
|
112
114
|
)
|
|
113
115
|
end
|
|
114
116
|
|
|
@@ -262,6 +264,27 @@ class Temporalio::Api::Activity::V1::ActivityOptions
|
|
|
262
264
|
def clear_priority
|
|
263
265
|
end
|
|
264
266
|
|
|
267
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
268
|
+
# When updated, the time is added to the original `schedule_time`, not to the current time.
|
|
269
|
+
# If the resulting time is in the past, the task is made available for dispatch immediately.
|
|
270
|
+
sig { returns(T.nilable(Google::Protobuf::Duration)) }
|
|
271
|
+
def start_delay
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
275
|
+
# When updated, the time is added to the original `schedule_time`, not to the current time.
|
|
276
|
+
# If the resulting time is in the past, the task is made available for dispatch immediately.
|
|
277
|
+
sig { params(value: T.nilable(Google::Protobuf::Duration)).void }
|
|
278
|
+
def start_delay=(value)
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
282
|
+
# When updated, the time is added to the original `schedule_time`, not to the current time.
|
|
283
|
+
# If the resulting time is in the past, the task is made available for dispatch immediately.
|
|
284
|
+
sig { void }
|
|
285
|
+
def clear_start_delay
|
|
286
|
+
end
|
|
287
|
+
|
|
265
288
|
sig { params(field: String).returns(T.untyped) }
|
|
266
289
|
def [](field)
|
|
267
290
|
end
|
|
@@ -338,7 +361,8 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
|
|
|
338
361
|
total_heartbeat_count: T.nilable(Integer),
|
|
339
362
|
sdk_name: T.nilable(String),
|
|
340
363
|
sdk_version: T.nilable(String),
|
|
341
|
-
start_delay: T.nilable(Google::Protobuf::Duration)
|
|
364
|
+
start_delay: T.nilable(Google::Protobuf::Duration),
|
|
365
|
+
execution_time: T.nilable(Google::Protobuf::Timestamp)
|
|
342
366
|
).void
|
|
343
367
|
end
|
|
344
368
|
def initialize(
|
|
@@ -378,7 +402,8 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
|
|
|
378
402
|
total_heartbeat_count: 0,
|
|
379
403
|
sdk_name: "",
|
|
380
404
|
sdk_version: "",
|
|
381
|
-
start_delay: nil
|
|
405
|
+
start_delay: nil,
|
|
406
|
+
execution_time: nil
|
|
382
407
|
)
|
|
383
408
|
end
|
|
384
409
|
|
|
@@ -673,17 +698,20 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
|
|
|
673
698
|
def clear_schedule_time
|
|
674
699
|
end
|
|
675
700
|
|
|
676
|
-
#
|
|
701
|
+
# The time at which the activity's Schedule-to-Close timeout expires.
|
|
702
|
+
# Calculated as `schedule_time` + `start_delay` + `schedule_to_close_timeout`.
|
|
677
703
|
sig { returns(T.nilable(Google::Protobuf::Timestamp)) }
|
|
678
704
|
def expiration_time
|
|
679
705
|
end
|
|
680
706
|
|
|
681
|
-
#
|
|
707
|
+
# The time at which the activity's Schedule-to-Close timeout expires.
|
|
708
|
+
# Calculated as `schedule_time` + `start_delay` + `schedule_to_close_timeout`.
|
|
682
709
|
sig { params(value: T.nilable(Google::Protobuf::Timestamp)).void }
|
|
683
710
|
def expiration_time=(value)
|
|
684
711
|
end
|
|
685
712
|
|
|
686
|
-
#
|
|
713
|
+
# The time at which the activity's Schedule-to-Close timeout expires.
|
|
714
|
+
# Calculated as `schedule_time` + `start_delay` + `schedule_to_close_timeout`.
|
|
687
715
|
sig { void }
|
|
688
716
|
def clear_expiration_time
|
|
689
717
|
end
|
|
@@ -979,21 +1007,39 @@ class Temporalio::Api::Activity::V1::ActivityExecutionInfo
|
|
|
979
1007
|
def clear_sdk_version
|
|
980
1008
|
end
|
|
981
1009
|
|
|
982
|
-
# Time to wait before
|
|
1010
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
983
1011
|
sig { returns(T.nilable(Google::Protobuf::Duration)) }
|
|
984
1012
|
def start_delay
|
|
985
1013
|
end
|
|
986
1014
|
|
|
987
|
-
# Time to wait before
|
|
1015
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
988
1016
|
sig { params(value: T.nilable(Google::Protobuf::Duration)).void }
|
|
989
1017
|
def start_delay=(value)
|
|
990
1018
|
end
|
|
991
1019
|
|
|
992
|
-
# Time to wait before
|
|
1020
|
+
# Time to wait before making the first activity task available for dispatch. This delay is not applied to retry attempts.
|
|
993
1021
|
sig { void }
|
|
994
1022
|
def clear_start_delay
|
|
995
1023
|
end
|
|
996
1024
|
|
|
1025
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1026
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1027
|
+
sig { returns(T.nilable(Google::Protobuf::Timestamp)) }
|
|
1028
|
+
def execution_time
|
|
1029
|
+
end
|
|
1030
|
+
|
|
1031
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1032
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1033
|
+
sig { params(value: T.nilable(Google::Protobuf::Timestamp)).void }
|
|
1034
|
+
def execution_time=(value)
|
|
1035
|
+
end
|
|
1036
|
+
|
|
1037
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1038
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1039
|
+
sig { void }
|
|
1040
|
+
def clear_execution_time
|
|
1041
|
+
end
|
|
1042
|
+
|
|
997
1043
|
sig { params(field: String).returns(T.untyped) }
|
|
998
1044
|
def [](field)
|
|
999
1045
|
end
|
|
@@ -1046,7 +1092,8 @@ class Temporalio::Api::Activity::V1::ActivityExecutionListInfo
|
|
|
1046
1092
|
task_queue: T.nilable(String),
|
|
1047
1093
|
state_transition_count: T.nilable(Integer),
|
|
1048
1094
|
state_size_bytes: T.nilable(Integer),
|
|
1049
|
-
execution_duration: T.nilable(Google::Protobuf::Duration)
|
|
1095
|
+
execution_duration: T.nilable(Google::Protobuf::Duration),
|
|
1096
|
+
execution_time: T.nilable(Google::Protobuf::Timestamp)
|
|
1050
1097
|
).void
|
|
1051
1098
|
end
|
|
1052
1099
|
def initialize(
|
|
@@ -1060,7 +1107,8 @@ class Temporalio::Api::Activity::V1::ActivityExecutionListInfo
|
|
|
1060
1107
|
task_queue: "",
|
|
1061
1108
|
state_transition_count: 0,
|
|
1062
1109
|
state_size_bytes: 0,
|
|
1063
|
-
execution_duration: nil
|
|
1110
|
+
execution_duration: nil,
|
|
1111
|
+
execution_time: nil
|
|
1064
1112
|
)
|
|
1065
1113
|
end
|
|
1066
1114
|
|
|
@@ -1235,6 +1283,24 @@ class Temporalio::Api::Activity::V1::ActivityExecutionListInfo
|
|
|
1235
1283
|
def clear_execution_duration
|
|
1236
1284
|
end
|
|
1237
1285
|
|
|
1286
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1287
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1288
|
+
sig { returns(T.nilable(Google::Protobuf::Timestamp)) }
|
|
1289
|
+
def execution_time
|
|
1290
|
+
end
|
|
1291
|
+
|
|
1292
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1293
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1294
|
+
sig { params(value: T.nilable(Google::Protobuf::Timestamp)).void }
|
|
1295
|
+
def execution_time=(value)
|
|
1296
|
+
end
|
|
1297
|
+
|
|
1298
|
+
# The time at which the first activity task is made available for dispatch, computed as
|
|
1299
|
+
# `schedule_time + start_delay`. Same as `schedule_time` if `start_delay` is not set.
|
|
1300
|
+
sig { void }
|
|
1301
|
+
def clear_execution_time
|
|
1302
|
+
end
|
|
1303
|
+
|
|
1238
1304
|
sig { params(field: String).returns(T.untyped) }
|
|
1239
1305
|
def [](field)
|
|
1240
1306
|
end
|