temporalio 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +2 -0
- data/Cargo.lock +659 -370
- data/Cargo.toml +2 -2
- data/Gemfile +3 -3
- data/README.md +589 -47
- data/Rakefile +10 -296
- data/ext/Cargo.toml +1 -0
- data/lib/temporalio/activity/complete_async_error.rb +1 -1
- data/lib/temporalio/activity/context.rb +5 -2
- data/lib/temporalio/activity/definition.rb +163 -65
- data/lib/temporalio/activity/info.rb +22 -21
- data/lib/temporalio/activity.rb +2 -59
- data/lib/temporalio/api/activity/v1/message.rb +25 -0
- data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +34 -1
- data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +1 -1
- data/lib/temporalio/api/cloud/identity/v1/message.rb +6 -1
- data/lib/temporalio/api/cloud/namespace/v1/message.rb +8 -1
- data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
- data/lib/temporalio/api/cloud/operation/v1/message.rb +2 -1
- data/lib/temporalio/api/cloud/region/v1/message.rb +2 -1
- data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
- data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
- data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
- data/lib/temporalio/api/common/v1/message.rb +7 -1
- data/lib/temporalio/api/enums/v1/event_type.rb +1 -1
- data/lib/temporalio/api/enums/v1/failed_cause.rb +1 -1
- data/lib/temporalio/api/enums/v1/reset.rb +1 -1
- data/lib/temporalio/api/history/v1/message.rb +1 -1
- data/lib/temporalio/api/nexus/v1/message.rb +2 -2
- data/lib/temporalio/api/operatorservice/v1/service.rb +1 -1
- data/lib/temporalio/api/payload_visitor.rb +1513 -0
- data/lib/temporalio/api/schedule/v1/message.rb +2 -1
- data/lib/temporalio/api/testservice/v1/request_response.rb +31 -0
- data/lib/temporalio/api/testservice/v1/service.rb +23 -0
- data/lib/temporalio/api/workflow/v1/message.rb +1 -1
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +17 -2
- data/lib/temporalio/api/workflowservice/v1/service.rb +1 -1
- data/lib/temporalio/api.rb +1 -0
- data/lib/temporalio/cancellation.rb +34 -14
- data/lib/temporalio/client/async_activity_handle.rb +12 -37
- data/lib/temporalio/client/connection/cloud_service.rb +309 -231
- data/lib/temporalio/client/connection/operator_service.rb +36 -84
- data/lib/temporalio/client/connection/service.rb +6 -5
- data/lib/temporalio/client/connection/test_service.rb +111 -0
- data/lib/temporalio/client/connection/workflow_service.rb +264 -441
- data/lib/temporalio/client/connection.rb +90 -44
- data/lib/temporalio/client/interceptor.rb +160 -60
- data/lib/temporalio/client/schedule.rb +967 -0
- data/lib/temporalio/client/schedule_handle.rb +126 -0
- data/lib/temporalio/client/workflow_execution.rb +7 -10
- data/lib/temporalio/client/workflow_handle.rb +38 -95
- data/lib/temporalio/client/workflow_update_handle.rb +3 -5
- data/lib/temporalio/client.rb +122 -42
- data/lib/temporalio/common_enums.rb +17 -0
- data/lib/temporalio/converters/data_converter.rb +4 -7
- data/lib/temporalio/converters/failure_converter.rb +5 -3
- data/lib/temporalio/converters/payload_converter/composite.rb +4 -0
- data/lib/temporalio/converters/payload_converter.rb +6 -8
- data/lib/temporalio/converters/raw_value.rb +20 -0
- data/lib/temporalio/error/failure.rb +1 -1
- data/lib/temporalio/error.rb +10 -2
- data/lib/temporalio/internal/bridge/api/core_interface.rb +5 -1
- data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
- data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +5 -1
- data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +4 -1
- data/lib/temporalio/internal/bridge/client.rb +11 -6
- data/lib/temporalio/internal/bridge/testing.rb +20 -0
- data/lib/temporalio/internal/bridge/worker.rb +2 -0
- data/lib/temporalio/internal/bridge.rb +1 -1
- data/lib/temporalio/internal/client/implementation.rb +245 -70
- data/lib/temporalio/internal/metric.rb +122 -0
- data/lib/temporalio/internal/proto_utils.rb +86 -7
- data/lib/temporalio/internal/worker/activity_worker.rb +52 -24
- data/lib/temporalio/internal/worker/multi_runner.rb +51 -7
- data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
- data/lib/temporalio/internal/worker/workflow_instance/context.rb +329 -0
- data/lib/temporalio/internal/worker/workflow_instance/details.rb +44 -0
- data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
- data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
- data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
- data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
- data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
- data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
- data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +415 -0
- data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
- data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
- data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +163 -0
- data/lib/temporalio/internal/worker/workflow_instance.rb +730 -0
- data/lib/temporalio/internal/worker/workflow_worker.rb +196 -0
- data/lib/temporalio/metric.rb +109 -0
- data/lib/temporalio/retry_policy.rb +37 -14
- data/lib/temporalio/runtime.rb +118 -75
- data/lib/temporalio/search_attributes.rb +80 -37
- data/lib/temporalio/testing/activity_environment.rb +2 -2
- data/lib/temporalio/testing/workflow_environment.rb +251 -5
- data/lib/temporalio/version.rb +1 -1
- data/lib/temporalio/worker/activity_executor/thread_pool.rb +9 -217
- data/lib/temporalio/worker/activity_executor.rb +3 -3
- data/lib/temporalio/worker/interceptor.rb +340 -66
- data/lib/temporalio/worker/thread_pool.rb +237 -0
- data/lib/temporalio/worker/workflow_executor/thread_pool.rb +230 -0
- data/lib/temporalio/worker/workflow_executor.rb +26 -0
- data/lib/temporalio/worker.rb +201 -30
- data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
- data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
- data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
- data/lib/temporalio/workflow/definition.rb +566 -0
- data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
- data/lib/temporalio/workflow/future.rb +151 -0
- data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
- data/lib/temporalio/workflow/info.rb +82 -0
- data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
- data/lib/temporalio/workflow/update_info.rb +20 -0
- data/lib/temporalio/workflow.rb +523 -0
- data/lib/temporalio.rb +4 -0
- data/temporalio.gemspec +2 -2
- metadata +50 -8
@@ -10,11 +10,12 @@ require 'google/protobuf/empty_pb'
|
|
10
10
|
require 'temporalio/api/common/v1/message'
|
11
11
|
require 'temporalio/api/enums/v1/workflow'
|
12
12
|
require 'temporalio/api/failure/v1/message'
|
13
|
+
require 'temporalio/api/sdk/v1/user_metadata'
|
13
14
|
require 'temporalio/internal/bridge/api/child_workflow/child_workflow'
|
14
15
|
require 'temporalio/internal/bridge/api/common/common'
|
15
16
|
|
16
17
|
|
17
|
-
descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\"\xf2\r\n\x0fWorkflowCommand\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x84\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xfb\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12j\n\x11search_attributes\x18\x08 \x03(\x0b\x32O.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.SearchAttributesEntry\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\xe0\t\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12g\n\x11search_attributes\x18\x11 \x03(\x0b\x32L.coresdk.workflow_commands.StartChildWorkflowExecution.SearchAttributesEntry\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\":\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\"\xa7\x01\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x42\x08\n\x06target\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xe6\x01\n\x1eUpsertWorkflowSearchAttributes\x12j\n\x11search_attributes\x18\x01 \x03(\x0b\x32O.coresdk.workflow_commands.UpsertWorkflowSearchAttributes.SearchAttributesEntry\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
|
18
|
+
descriptor_data = "\n;temporal/sdk/core/workflow_commands/workflow_commands.proto\x12\x19\x63oresdk.workflow_commands\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a$temporal/api/common/v1/message.proto\x1a$temporal/api/enums/v1/workflow.proto\x1a%temporal/api/failure/v1/message.proto\x1a\'temporal/api/sdk/v1/user_metadata.proto\x1a\x35temporal/sdk/core/child_workflow/child_workflow.proto\x1a%temporal/sdk/core/common/common.proto\"\xe5\x0f\n\x0fWorkflowCommand\x12\x38\n\ruser_metadata\x18\x64 \x01(\x0b\x32!.temporal.api.sdk.v1.UserMetadata\x12<\n\x0bstart_timer\x18\x01 \x01(\x0b\x32%.coresdk.workflow_commands.StartTimerH\x00\x12H\n\x11schedule_activity\x18\x02 \x01(\x0b\x32+.coresdk.workflow_commands.ScheduleActivityH\x00\x12\x42\n\x10respond_to_query\x18\x03 \x01(\x0b\x32&.coresdk.workflow_commands.QueryResultH\x00\x12S\n\x17request_cancel_activity\x18\x04 \x01(\x0b\x32\x30.coresdk.workflow_commands.RequestCancelActivityH\x00\x12>\n\x0c\x63\x61ncel_timer\x18\x05 \x01(\x0b\x32&.coresdk.workflow_commands.CancelTimerH\x00\x12[\n\x1b\x63omplete_workflow_execution\x18\x06 \x01(\x0b\x32\x34.coresdk.workflow_commands.CompleteWorkflowExecutionH\x00\x12S\n\x17\x66\x61il_workflow_execution\x18\x07 \x01(\x0b\x32\x30.coresdk.workflow_commands.FailWorkflowExecutionH\x00\x12g\n\"continue_as_new_workflow_execution\x18\x08 \x01(\x0b\x32\x39.coresdk.workflow_commands.ContinueAsNewWorkflowExecutionH\x00\x12W\n\x19\x63\x61ncel_workflow_execution\x18\t \x01(\x0b\x32\x32.coresdk.workflow_commands.CancelWorkflowExecutionH\x00\x12\x45\n\x10set_patch_marker\x18\n \x01(\x0b\x32).coresdk.workflow_commands.SetPatchMarkerH\x00\x12`\n\x1estart_child_workflow_execution\x18\x0b \x01(\x0b\x32\x36.coresdk.workflow_commands.StartChildWorkflowExecutionH\x00\x12\x62\n\x1f\x63\x61ncel_child_workflow_execution\x18\x0c \x01(\x0b\x32\x37.coresdk.workflow_commands.CancelChildWorkflowExecutionH\x00\x12w\n*request_cancel_external_workflow_execution\x18\r \x01(\x0b\x32\x41.coresdk.workflow_commands.RequestCancelExternalWorkflowExecutionH\x00\x12h\n\"signal_external_workflow_execution\x18\x0e \x01(\x0b\x32:.coresdk.workflow_commands.SignalExternalWorkflowExecutionH\x00\x12Q\n\x16\x63\x61ncel_signal_workflow\x18\x0f \x01(\x0b\x32/.coresdk.workflow_commands.CancelSignalWorkflowH\x00\x12S\n\x17schedule_local_activity\x18\x10 \x01(\x0b\x32\x30.coresdk.workflow_commands.ScheduleLocalActivityH\x00\x12^\n\x1drequest_cancel_local_activity\x18\x11 \x01(\x0b\x32\x35.coresdk.workflow_commands.RequestCancelLocalActivityH\x00\x12\x66\n!upsert_workflow_search_attributes\x18\x12 \x01(\x0b\x32\x39.coresdk.workflow_commands.UpsertWorkflowSearchAttributesH\x00\x12Y\n\x1amodify_workflow_properties\x18\x13 \x01(\x0b\x32\x33.coresdk.workflow_commands.ModifyWorkflowPropertiesH\x00\x12\x44\n\x0fupdate_response\x18\x14 \x01(\x0b\x32).coresdk.workflow_commands.UpdateResponseH\x00\x12U\n\x18schedule_nexus_operation\x18\x15 \x01(\x0b\x32\x31.coresdk.workflow_commands.ScheduleNexusOperationH\x00\x12`\n\x1erequest_cancel_nexus_operation\x18\x16 \x01(\x0b\x32\x36.coresdk.workflow_commands.RequestCancelNexusOperationH\x00\x42\t\n\x07variant\"S\n\nStartTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x38\n\x15start_to_fire_timeout\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x1a\n\x0b\x43\x61ncelTimer\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x84\x06\n\x10ScheduleActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12I\n\x07headers\x18\x06 \x03(\x0b\x32\x38.coresdk.workflow_commands.ScheduleActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x34\n\x11heartbeat_timeout\x18\x0b \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0c \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x12\x1e\n\x16\x64o_not_eagerly_execute\x18\x0e \x01(\x08\x12;\n\x11versioning_intent\x18\x0f \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\xee\x05\n\x15ScheduleLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x13\n\x0b\x61\x63tivity_id\x18\x02 \x01(\t\x12\x15\n\ractivity_type\x18\x03 \x01(\t\x12\x0f\n\x07\x61ttempt\x18\x04 \x01(\r\x12:\n\x16original_schedule_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12N\n\x07headers\x18\x06 \x03(\x0b\x32=.coresdk.workflow_commands.ScheduleLocalActivity.HeadersEntry\x12\x32\n\targuments\x18\x07 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12<\n\x19schedule_to_start_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16start_to_close_timeout\x18\n \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x0cretry_policy\x18\x0b \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x38\n\x15local_retry_threshold\x18\x0c \x01(\x0b\x32\x19.google.protobuf.Duration\x12N\n\x11\x63\x61ncellation_type\x18\r \x01(\x0e\x32\x33.coresdk.workflow_commands.ActivityCancellationType\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"$\n\x15RequestCancelActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\")\n\x1aRequestCancelLocalActivity\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\x9c\x01\n\x0bQueryResult\x12\x10\n\x08query_id\x18\x01 \x01(\t\x12<\n\tsucceeded\x18\x02 \x01(\x0b\x32\'.coresdk.workflow_commands.QuerySuccessH\x00\x12\x32\n\x06\x66\x61iled\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x42\t\n\x07variant\"A\n\x0cQuerySuccess\x12\x31\n\x08response\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"L\n\x19\x43ompleteWorkflowExecution\x12/\n\x06result\x18\x01 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\"J\n\x15\x46\x61ilWorkflowExecution\x12\x31\n\x07\x66\x61ilure\x18\x01 \x01(\x0b\x32 .temporal.api.failure.v1.Failure\"\xfb\x06\n\x1e\x43ontinueAsNewWorkflowExecution\x12\x15\n\rworkflow_type\x18\x01 \x01(\t\x12\x12\n\ntask_queue\x18\x02 \x01(\t\x12\x32\n\targuments\x18\x03 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12\x37\n\x14workflow_run_timeout\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x04memo\x18\x06 \x03(\x0b\x32\x43.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.MemoEntry\x12W\n\x07headers\x18\x07 \x03(\x0b\x32\x46.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.HeadersEntry\x12j\n\x11search_attributes\x18\x08 \x03(\x0b\x32O.coresdk.workflow_commands.ContinueAsNewWorkflowExecution.SearchAttributesEntry\x12\x39\n\x0cretry_policy\x18\t \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12;\n\x11versioning_intent\x18\n \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"\x19\n\x17\x43\x61ncelWorkflowExecution\"6\n\x0eSetPatchMarker\x12\x10\n\x08patch_id\x18\x01 \x01(\t\x12\x12\n\ndeprecated\x18\x02 \x01(\x08\"\xe0\t\n\x1bStartChildWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x13\n\x0bworkflow_id\x18\x03 \x01(\t\x12\x15\n\rworkflow_type\x18\x04 \x01(\t\x12\x12\n\ntask_queue\x18\x05 \x01(\t\x12.\n\x05input\x18\x06 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12=\n\x1aworkflow_execution_timeout\x18\x07 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x14workflow_run_timeout\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15workflow_task_timeout\x18\t \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x46\n\x13parent_close_policy\x18\n \x01(\x0e\x32).coresdk.child_workflow.ParentClosePolicy\x12N\n\x18workflow_id_reuse_policy\x18\x0c \x01(\x0e\x32,.temporal.api.enums.v1.WorkflowIdReusePolicy\x12\x39\n\x0cretry_policy\x18\r \x01(\x0b\x32#.temporal.api.common.v1.RetryPolicy\x12\x15\n\rcron_schedule\x18\x0e \x01(\t\x12T\n\x07headers\x18\x0f \x03(\x0b\x32\x43.coresdk.workflow_commands.StartChildWorkflowExecution.HeadersEntry\x12N\n\x04memo\x18\x10 \x03(\x0b\x32@.coresdk.workflow_commands.StartChildWorkflowExecution.MemoEntry\x12g\n\x11search_attributes\x18\x11 \x03(\x0b\x32L.coresdk.workflow_commands.StartChildWorkflowExecution.SearchAttributesEntry\x12P\n\x11\x63\x61ncellation_type\x18\x12 \x01(\x0e\x32\x35.coresdk.child_workflow.ChildWorkflowCancellationType\x12;\n\x11versioning_intent\x18\x13 \x01(\x0e\x32 .coresdk.common.VersioningIntent\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aL\n\tMemoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\":\n\x1c\x43\x61ncelChildWorkflowExecution\x12\x1a\n\x12\x63hild_workflow_seq\x18\x01 \x01(\r\"~\n&RequestCancelExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12G\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecution\"\x8f\x03\n\x1fSignalExternalWorkflowExecution\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12I\n\x12workflow_execution\x18\x02 \x01(\x0b\x32+.coresdk.common.NamespacedWorkflowExecutionH\x00\x12\x1b\n\x11\x63hild_workflow_id\x18\x03 \x01(\tH\x00\x12\x13\n\x0bsignal_name\x18\x04 \x01(\t\x12-\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12X\n\x07headers\x18\x06 \x03(\x0b\x32G.coresdk.workflow_commands.SignalExternalWorkflowExecution.HeadersEntry\x1aO\n\x0cHeadersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\x42\x08\n\x06target\"#\n\x14\x43\x61ncelSignalWorkflow\x12\x0b\n\x03seq\x18\x01 \x01(\r\"\xe6\x01\n\x1eUpsertWorkflowSearchAttributes\x12j\n\x11search_attributes\x18\x01 \x03(\x0b\x32O.coresdk.workflow_commands.UpsertWorkflowSearchAttributes.SearchAttributesEntry\x1aX\n\x15SearchAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload:\x02\x38\x01\"O\n\x18ModifyWorkflowProperties\x12\x33\n\rupserted_memo\x18\x01 \x01(\x0b\x32\x1c.temporal.api.common.v1.Memo\"\xd2\x01\n\x0eUpdateResponse\x12\x1c\n\x14protocol_instance_id\x18\x01 \x01(\t\x12*\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x12\x34\n\x08rejected\x18\x03 \x01(\x0b\x32 .temporal.api.failure.v1.FailureH\x00\x12\x34\n\tcompleted\x18\x04 \x01(\x0b\x32\x1f.temporal.api.common.v1.PayloadH\x00\x42\n\n\x08response\"\xd7\x02\n\x16ScheduleNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0f\n\x07service\x18\x03 \x01(\t\x12\x11\n\toperation\x18\x04 \x01(\t\x12.\n\x05input\x18\x05 \x01(\x0b\x32\x1f.temporal.api.common.v1.Payload\x12<\n\x19schedule_to_close_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12X\n\x0cnexus_header\x18\x07 \x03(\x0b\x32\x42.coresdk.workflow_commands.ScheduleNexusOperation.NexusHeaderEntry\x1a\x32\n\x10NexusHeaderEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"*\n\x1bRequestCancelNexusOperation\x12\x0b\n\x03seq\x18\x01 \x01(\r*X\n\x18\x41\x63tivityCancellationType\x12\x0e\n\nTRY_CANCEL\x10\x00\x12\x1f\n\x1bWAIT_CANCELLATION_COMPLETED\x10\x01\x12\x0b\n\x07\x41\x42\x41NDON\x10\x02\x42\x36\xea\x02\x33Temporalio::Internal::Bridge::Api::WorkflowCommandsb\x06proto3"
|
18
19
|
|
19
20
|
pool = Google::Protobuf::DescriptorPool.generated_pool
|
20
21
|
pool.add_serialized_file(descriptor_data)
|
@@ -46,6 +47,8 @@ module Temporalio
|
|
46
47
|
UpsertWorkflowSearchAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.UpsertWorkflowSearchAttributes").msgclass
|
47
48
|
ModifyWorkflowProperties = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ModifyWorkflowProperties").msgclass
|
48
49
|
UpdateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.UpdateResponse").msgclass
|
50
|
+
ScheduleNexusOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ScheduleNexusOperation").msgclass
|
51
|
+
RequestCancelNexusOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.RequestCancelNexusOperation").msgclass
|
49
52
|
ActivityCancellationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ActivityCancellationType").enummodule
|
50
53
|
end
|
51
54
|
end
|
@@ -65,18 +65,23 @@ module Temporalio
|
|
65
65
|
rpc:,
|
66
66
|
request:,
|
67
67
|
response_class:,
|
68
|
-
|
69
|
-
rpc_metadata:,
|
70
|
-
rpc_timeout:
|
68
|
+
rpc_options:
|
71
69
|
)
|
70
|
+
# Build cancellation token if needed
|
71
|
+
if rpc_options&.cancellation
|
72
|
+
rpc_cancellation_token = CancellationToken.new
|
73
|
+
rpc_options&.cancellation&.add_cancel_callback { rpc_cancellation_token.cancel }
|
74
|
+
end
|
75
|
+
|
72
76
|
queue = Queue.new
|
73
77
|
async_invoke_rpc(
|
74
78
|
service:,
|
75
79
|
rpc:,
|
76
80
|
request: request.to_proto,
|
77
|
-
rpc_retry
|
78
|
-
rpc_metadata
|
79
|
-
rpc_timeout
|
81
|
+
rpc_retry: rpc_options&.override_retry || false,
|
82
|
+
rpc_metadata: rpc_options&.metadata,
|
83
|
+
rpc_timeout: rpc_options&.timeout,
|
84
|
+
rpc_cancellation_token:,
|
80
85
|
queue:
|
81
86
|
)
|
82
87
|
result = queue.pop
|
@@ -24,6 +24,17 @@ module Temporalio
|
|
24
24
|
keyword_init: true
|
25
25
|
)
|
26
26
|
|
27
|
+
StartTestServerOptions = Struct.new(
|
28
|
+
:existing_path, # Optional
|
29
|
+
:sdk_name,
|
30
|
+
:sdk_version,
|
31
|
+
:download_version,
|
32
|
+
:download_dest_dir, # Optional
|
33
|
+
:port, # Optional
|
34
|
+
:extra_args,
|
35
|
+
keyword_init: true
|
36
|
+
)
|
37
|
+
|
27
38
|
def self.start_dev_server(runtime, options)
|
28
39
|
queue = Queue.new
|
29
40
|
async_start_dev_server(runtime, options, queue)
|
@@ -33,6 +44,15 @@ module Temporalio
|
|
33
44
|
result
|
34
45
|
end
|
35
46
|
|
47
|
+
def self.start_test_server(runtime, options)
|
48
|
+
queue = Queue.new
|
49
|
+
async_start_test_server(runtime, options, queue)
|
50
|
+
result = queue.pop
|
51
|
+
raise result if result.is_a?(Exception)
|
52
|
+
|
53
|
+
result
|
54
|
+
end
|
55
|
+
|
36
56
|
def shutdown
|
37
57
|
queue = Queue.new
|
38
58
|
async_shutdown(queue)
|
@@ -3,9 +3,9 @@
|
|
3
3
|
# Use Ruby-version-specific Rust library if present. When the gem is compiled
|
4
4
|
# via the cross-gem action, it is placed in a version specific directory. E.g.
|
5
5
|
# for the Linux gem as of this writing, there will be files at:
|
6
|
-
# * temporalio/internal/bridge/3.1/temporalio_bridge.so
|
7
6
|
# * temporalio/internal/bridge/3.2/temporalio_bridge.so
|
8
7
|
# * temporalio/internal/bridge/3.3/temporalio_bridge.so
|
8
|
+
# * temporalio/internal/bridge/3.4/temporalio_bridge.so
|
9
9
|
# We fallback to just temporalio/internal/bridge/temporalio_bridge.so because
|
10
10
|
# rake compile puts it there during manual build/development.
|
11
11
|
begin
|
@@ -7,6 +7,8 @@ require 'temporalio/client/activity_id_reference'
|
|
7
7
|
require 'temporalio/client/async_activity_handle'
|
8
8
|
require 'temporalio/client/connection'
|
9
9
|
require 'temporalio/client/interceptor'
|
10
|
+
require 'temporalio/client/schedule'
|
11
|
+
require 'temporalio/client/schedule_handle'
|
10
12
|
require 'temporalio/client/workflow_execution'
|
11
13
|
require 'temporalio/client/workflow_execution_count'
|
12
14
|
require 'temporalio/client/workflow_handle'
|
@@ -17,11 +19,27 @@ require 'temporalio/error/failure'
|
|
17
19
|
require 'temporalio/internal/proto_utils'
|
18
20
|
require 'temporalio/runtime'
|
19
21
|
require 'temporalio/search_attributes'
|
22
|
+
require 'temporalio/workflow/definition'
|
20
23
|
|
21
24
|
module Temporalio
|
22
25
|
module Internal
|
23
26
|
module Client
|
24
27
|
class Implementation < Temporalio::Client::Interceptor::Outbound
|
28
|
+
def self.with_default_rpc_options(user_rpc_options)
|
29
|
+
# If the user did not provide an override_retry, we need to make sure
|
30
|
+
# we use an option set that has it as "true"
|
31
|
+
if user_rpc_options.nil?
|
32
|
+
user_rpc_options = @always_retry_options ||= Temporalio::Client::RPCOptions.new(override_retry: true)
|
33
|
+
elsif !user_rpc_options.is_a?(Temporalio::Client::RPCOptions)
|
34
|
+
raise ArgumentError, 'rpc_options must be RPCOptions'
|
35
|
+
elsif user_rpc_options.override_retry.nil?
|
36
|
+
# Copy and set as true
|
37
|
+
user_rpc_options = user_rpc_options.dup
|
38
|
+
user_rpc_options.override_retry = true
|
39
|
+
end
|
40
|
+
user_rpc_options
|
41
|
+
end
|
42
|
+
|
25
43
|
def initialize(client)
|
26
44
|
super(nil)
|
27
45
|
@client = client
|
@@ -32,7 +50,9 @@ module Temporalio
|
|
32
50
|
req = Api::WorkflowService::V1::StartWorkflowExecutionRequest.new(
|
33
51
|
request_id: SecureRandom.uuid,
|
34
52
|
namespace: @client.namespace,
|
35
|
-
workflow_type: Api::Common::V1::WorkflowType.new(
|
53
|
+
workflow_type: Api::Common::V1::WorkflowType.new(
|
54
|
+
name: Workflow::Definition._workflow_type_from_workflow_parameter(input.workflow)
|
55
|
+
),
|
36
56
|
workflow_id: input.workflow_id,
|
37
57
|
task_queue: Api::TaskQueue::V1::TaskQueue.new(name: input.task_queue.to_s),
|
38
58
|
input: @client.data_converter.to_payloads(input.args),
|
@@ -42,22 +62,20 @@ module Temporalio
|
|
42
62
|
identity: @client.connection.identity,
|
43
63
|
workflow_id_reuse_policy: input.id_reuse_policy,
|
44
64
|
workflow_id_conflict_policy: input.id_conflict_policy,
|
45
|
-
retry_policy: input.retry_policy&.
|
65
|
+
retry_policy: input.retry_policy&._to_proto,
|
46
66
|
cron_schedule: input.cron_schedule,
|
47
67
|
memo: ProtoUtils.memo_to_proto(input.memo, @client.data_converter),
|
48
|
-
search_attributes: input.search_attributes&.
|
68
|
+
search_attributes: input.search_attributes&._to_proto,
|
49
69
|
workflow_start_delay: ProtoUtils.seconds_to_duration(input.start_delay),
|
50
70
|
request_eager_execution: input.request_eager_start,
|
51
|
-
header: input.headers
|
71
|
+
header: ProtoUtils.headers_to_proto(input.headers, @client.data_converter)
|
52
72
|
)
|
53
73
|
|
54
74
|
# Send request
|
55
75
|
begin
|
56
76
|
resp = @client.workflow_service.start_workflow_execution(
|
57
77
|
req,
|
58
|
-
|
59
|
-
rpc_metadata: input.rpc_metadata,
|
60
|
-
rpc_timeout: input.rpc_timeout
|
78
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
61
79
|
)
|
62
80
|
rescue Error::RPCError => e
|
63
81
|
# Unpack and raise already started if that's the error, otherwise default raise
|
@@ -95,9 +113,7 @@ module Temporalio
|
|
95
113
|
loop do
|
96
114
|
resp = @client.workflow_service.list_workflow_executions(
|
97
115
|
req,
|
98
|
-
|
99
|
-
rpc_metadata: input.rpc_metadata,
|
100
|
-
rpc_timeout: input.rpc_timeout
|
116
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
101
117
|
)
|
102
118
|
resp.executions.each do |raw_info|
|
103
119
|
yielder << Temporalio::Client::WorkflowExecution.new(raw_info, @client.data_converter)
|
@@ -115,16 +131,14 @@ module Temporalio
|
|
115
131
|
namespace: @client.namespace,
|
116
132
|
query: input.query || ''
|
117
133
|
),
|
118
|
-
|
119
|
-
rpc_metadata: input.rpc_metadata,
|
120
|
-
rpc_timeout: input.rpc_timeout
|
134
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
121
135
|
)
|
122
136
|
Temporalio::Client::WorkflowExecutionCount.new(
|
123
137
|
resp.count,
|
124
138
|
resp.groups.map do |group|
|
125
139
|
Temporalio::Client::WorkflowExecutionCount::AggregationGroup.new(
|
126
140
|
group.count,
|
127
|
-
group.group_values.map { |payload| SearchAttributes.
|
141
|
+
group.group_values.map { |payload| SearchAttributes._value_from_payload(payload) }
|
128
142
|
)
|
129
143
|
end
|
130
144
|
)
|
@@ -139,9 +153,7 @@ module Temporalio
|
|
139
153
|
run_id: input.run_id || ''
|
140
154
|
)
|
141
155
|
),
|
142
|
-
|
143
|
-
rpc_metadata: input.rpc_metadata,
|
144
|
-
rpc_timeout: input.rpc_timeout
|
156
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
145
157
|
)
|
146
158
|
Temporalio::Client::WorkflowExecution::Description.new(resp, @client.data_converter)
|
147
159
|
end
|
@@ -161,9 +173,7 @@ module Temporalio
|
|
161
173
|
loop do
|
162
174
|
resp = @client.workflow_service.get_workflow_execution_history(
|
163
175
|
req,
|
164
|
-
|
165
|
-
rpc_metadata: input.rpc_metadata,
|
166
|
-
rpc_timeout: input.rpc_timeout
|
176
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
167
177
|
)
|
168
178
|
resp.history&.events&.each { |event| yielder << event }
|
169
179
|
break if resp.next_page_token.empty?
|
@@ -181,15 +191,13 @@ module Temporalio
|
|
181
191
|
workflow_id: input.workflow_id,
|
182
192
|
run_id: input.run_id || ''
|
183
193
|
),
|
184
|
-
signal_name: input.signal,
|
194
|
+
signal_name: Workflow::Definition::Signal._name_from_parameter(input.signal),
|
185
195
|
input: @client.data_converter.to_payloads(input.args),
|
186
|
-
header: input.headers,
|
196
|
+
header: Internal::ProtoUtils.headers_to_proto(input.headers, @client.data_converter),
|
187
197
|
identity: @client.connection.identity,
|
188
198
|
request_id: SecureRandom.uuid
|
189
199
|
),
|
190
|
-
|
191
|
-
rpc_metadata: input.rpc_metadata,
|
192
|
-
rpc_timeout: input.rpc_timeout
|
200
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
193
201
|
)
|
194
202
|
nil
|
195
203
|
end
|
@@ -204,15 +212,13 @@ module Temporalio
|
|
204
212
|
run_id: input.run_id || ''
|
205
213
|
),
|
206
214
|
query: Api::Query::V1::WorkflowQuery.new(
|
207
|
-
query_type: input.query,
|
215
|
+
query_type: Workflow::Definition::Query._name_from_parameter(input.query),
|
208
216
|
query_args: @client.data_converter.to_payloads(input.args),
|
209
|
-
header: input.headers
|
217
|
+
header: Internal::ProtoUtils.headers_to_proto(input.headers, @client.data_converter)
|
210
218
|
),
|
211
219
|
query_reject_condition: input.reject_condition || 0
|
212
220
|
),
|
213
|
-
|
214
|
-
rpc_metadata: input.rpc_metadata,
|
215
|
-
rpc_timeout: input.rpc_timeout
|
221
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
216
222
|
)
|
217
223
|
rescue Error::RPCError => e
|
218
224
|
# If the status is INVALID_ARGUMENT, we can assume it's a query failed
|
@@ -249,9 +255,9 @@ module Temporalio
|
|
249
255
|
identity: @client.connection.identity
|
250
256
|
),
|
251
257
|
input: Api::Update::V1::Input.new(
|
252
|
-
name: input.update,
|
258
|
+
name: Workflow::Definition::Update._name_from_parameter(input.update),
|
253
259
|
args: @client.data_converter.to_payloads(input.args),
|
254
|
-
header: input.headers
|
260
|
+
header: Internal::ProtoUtils.headers_to_proto(input.headers, @client.data_converter)
|
255
261
|
)
|
256
262
|
),
|
257
263
|
wait_policy: Api::Update::V1::WaitPolicy.new(
|
@@ -267,9 +273,7 @@ module Temporalio
|
|
267
273
|
loop do
|
268
274
|
resp = @client.workflow_service.update_workflow_execution(
|
269
275
|
req,
|
270
|
-
|
271
|
-
rpc_metadata: input.rpc_metadata,
|
272
|
-
rpc_timeout: input.rpc_timeout
|
276
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
273
277
|
)
|
274
278
|
|
275
279
|
# We're only done if the response stage is after the requested stage
|
@@ -295,8 +299,7 @@ module Temporalio
|
|
295
299
|
workflow_id: input.workflow_id,
|
296
300
|
run_id: input.run_id,
|
297
301
|
update_id: input.update_id,
|
298
|
-
|
299
|
-
rpc_timeout: input.rpc_timeout
|
302
|
+
rpc_options: input.rpc_options
|
300
303
|
)
|
301
304
|
)
|
302
305
|
end
|
@@ -330,9 +333,7 @@ module Temporalio
|
|
330
333
|
loop do
|
331
334
|
resp = @client.workflow_service.poll_workflow_execution_update(
|
332
335
|
req,
|
333
|
-
|
334
|
-
rpc_metadata: input.rpc_metadata,
|
335
|
-
rpc_timeout: input.rpc_timeout
|
336
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
336
337
|
)
|
337
338
|
return resp.outcome if resp.outcome
|
338
339
|
rescue Error::RPCError => e
|
@@ -357,9 +358,7 @@ module Temporalio
|
|
357
358
|
identity: @client.connection.identity,
|
358
359
|
request_id: SecureRandom.uuid
|
359
360
|
),
|
360
|
-
|
361
|
-
rpc_metadata: input.rpc_metadata,
|
362
|
-
rpc_timeout: input.rpc_timeout
|
361
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
363
362
|
)
|
364
363
|
nil
|
365
364
|
end
|
@@ -377,9 +376,201 @@ module Temporalio
|
|
377
376
|
details: @client.data_converter.to_payloads(input.details),
|
378
377
|
identity: @client.connection.identity
|
379
378
|
),
|
380
|
-
|
381
|
-
|
382
|
-
|
379
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
380
|
+
)
|
381
|
+
nil
|
382
|
+
end
|
383
|
+
|
384
|
+
def create_schedule(input)
|
385
|
+
if input.schedule.state.limited_actions && input.schedule.state.remaining_actions.zero?
|
386
|
+
raise 'Must set limited actions to false if there are no remaining actions set'
|
387
|
+
end
|
388
|
+
if !input.schedule.state.limited_actions && !input.schedule.state.remaining_actions.zero?
|
389
|
+
raise 'Must set limited actions to true if there are remaining actions set'
|
390
|
+
end
|
391
|
+
|
392
|
+
@client.workflow_service.create_schedule(
|
393
|
+
Api::WorkflowService::V1::CreateScheduleRequest.new(
|
394
|
+
namespace: @client.namespace,
|
395
|
+
schedule_id: input.id,
|
396
|
+
schedule: input.schedule._to_proto(@client.data_converter),
|
397
|
+
initial_patch: if input.trigger_immediately || !input.backfills.empty?
|
398
|
+
Api::Schedule::V1::SchedulePatch.new(
|
399
|
+
trigger_immediately: if input.trigger_immediately
|
400
|
+
Api::Schedule::V1::TriggerImmediatelyRequest.new(
|
401
|
+
overlap_policy: input.schedule.policy.overlap
|
402
|
+
)
|
403
|
+
end,
|
404
|
+
backfill_request: input.backfills.map(&:_to_proto)
|
405
|
+
)
|
406
|
+
end,
|
407
|
+
identity: @client.connection.identity,
|
408
|
+
request_id: SecureRandom.uuid,
|
409
|
+
memo: ProtoUtils.memo_to_proto(input.memo, @client.data_converter),
|
410
|
+
search_attributes: input.search_attributes&._to_proto
|
411
|
+
),
|
412
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
413
|
+
)
|
414
|
+
Temporalio::Client::ScheduleHandle.new(client: @client, id: input.id)
|
415
|
+
rescue Error::RPCError => e
|
416
|
+
# Unpack and raise already started if that's the error, otherwise default raise
|
417
|
+
details = if e.code == Error::RPCError::Code::ALREADY_EXISTS && e.grpc_status.details.first
|
418
|
+
e.grpc_status.details.first.unpack(Api::ErrorDetails::V1::WorkflowExecutionAlreadyStartedFailure)
|
419
|
+
end
|
420
|
+
raise Error::ScheduleAlreadyRunningError if details
|
421
|
+
|
422
|
+
raise
|
423
|
+
end
|
424
|
+
|
425
|
+
def list_schedules(input)
|
426
|
+
Enumerator.new do |yielder|
|
427
|
+
req = Api::WorkflowService::V1::ListSchedulesRequest.new(
|
428
|
+
namespace: @client.namespace,
|
429
|
+
query: input.query || ''
|
430
|
+
)
|
431
|
+
loop do
|
432
|
+
resp = @client.workflow_service.list_schedules(
|
433
|
+
req,
|
434
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
435
|
+
)
|
436
|
+
resp.schedules.each do |raw_entry|
|
437
|
+
yielder << Temporalio::Client::Schedule::List::Description.new(
|
438
|
+
raw_entry:,
|
439
|
+
data_converter: @client.data_converter
|
440
|
+
)
|
441
|
+
end
|
442
|
+
break if resp.next_page_token.empty?
|
443
|
+
|
444
|
+
req.next_page_token = resp.next_page_token
|
445
|
+
end
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
def backfill_schedule(input)
|
450
|
+
@client.workflow_service.patch_schedule(
|
451
|
+
Api::WorkflowService::V1::PatchScheduleRequest.new(
|
452
|
+
namespace: @client.namespace,
|
453
|
+
schedule_id: input.id,
|
454
|
+
patch: Api::Schedule::V1::SchedulePatch.new(
|
455
|
+
backfill_request: input.backfills.map(&:_to_proto)
|
456
|
+
),
|
457
|
+
identity: @client.connection.identity,
|
458
|
+
request_id: SecureRandom.uuid
|
459
|
+
),
|
460
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
461
|
+
)
|
462
|
+
nil
|
463
|
+
end
|
464
|
+
|
465
|
+
def delete_schedule(input)
|
466
|
+
@client.workflow_service.delete_schedule(
|
467
|
+
Api::WorkflowService::V1::DeleteScheduleRequest.new(
|
468
|
+
namespace: @client.namespace,
|
469
|
+
schedule_id: input.id,
|
470
|
+
identity: @client.connection.identity
|
471
|
+
),
|
472
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
473
|
+
)
|
474
|
+
nil
|
475
|
+
end
|
476
|
+
|
477
|
+
def describe_schedule(input)
|
478
|
+
Temporalio::Client::Schedule::Description.new(
|
479
|
+
id: input.id,
|
480
|
+
raw_description: @client.workflow_service.describe_schedule(
|
481
|
+
Api::WorkflowService::V1::DescribeScheduleRequest.new(
|
482
|
+
namespace: @client.namespace,
|
483
|
+
schedule_id: input.id
|
484
|
+
),
|
485
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
486
|
+
),
|
487
|
+
data_converter: @client.data_converter
|
488
|
+
)
|
489
|
+
end
|
490
|
+
|
491
|
+
def pause_schedule(input)
|
492
|
+
@client.workflow_service.patch_schedule(
|
493
|
+
Api::WorkflowService::V1::PatchScheduleRequest.new(
|
494
|
+
namespace: @client.namespace,
|
495
|
+
schedule_id: input.id,
|
496
|
+
patch: Api::Schedule::V1::SchedulePatch.new(pause: input.note),
|
497
|
+
identity: @client.connection.identity,
|
498
|
+
request_id: SecureRandom.uuid
|
499
|
+
),
|
500
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
501
|
+
)
|
502
|
+
nil
|
503
|
+
end
|
504
|
+
|
505
|
+
def trigger_schedule(input)
|
506
|
+
@client.workflow_service.patch_schedule(
|
507
|
+
Api::WorkflowService::V1::PatchScheduleRequest.new(
|
508
|
+
namespace: @client.namespace,
|
509
|
+
schedule_id: input.id,
|
510
|
+
patch: Api::Schedule::V1::SchedulePatch.new(
|
511
|
+
trigger_immediately: Api::Schedule::V1::TriggerImmediatelyRequest.new(
|
512
|
+
overlap_policy: input.overlap || 0
|
513
|
+
)
|
514
|
+
),
|
515
|
+
identity: @client.connection.identity,
|
516
|
+
request_id: SecureRandom.uuid
|
517
|
+
),
|
518
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
519
|
+
)
|
520
|
+
nil
|
521
|
+
end
|
522
|
+
|
523
|
+
def unpause_schedule(input)
|
524
|
+
@client.workflow_service.patch_schedule(
|
525
|
+
Api::WorkflowService::V1::PatchScheduleRequest.new(
|
526
|
+
namespace: @client.namespace,
|
527
|
+
schedule_id: input.id,
|
528
|
+
patch: Api::Schedule::V1::SchedulePatch.new(unpause: input.note),
|
529
|
+
identity: @client.connection.identity,
|
530
|
+
request_id: SecureRandom.uuid
|
531
|
+
),
|
532
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
533
|
+
)
|
534
|
+
nil
|
535
|
+
end
|
536
|
+
|
537
|
+
def update_schedule(input)
|
538
|
+
# TODO(cretz): This is supposed to be a retry-conflict loop, but we do
|
539
|
+
# not yet have a way to know update failure is due to conflict token
|
540
|
+
# mismatch
|
541
|
+
update = input.updater.call(
|
542
|
+
Temporalio::Client::Schedule::Update::Input.new(
|
543
|
+
description: Temporalio::Client::Schedule::Description.new(
|
544
|
+
id: input.id,
|
545
|
+
raw_description: @client.workflow_service.describe_schedule(
|
546
|
+
Api::WorkflowService::V1::DescribeScheduleRequest.new(
|
547
|
+
namespace: @client.namespace,
|
548
|
+
schedule_id: input.id
|
549
|
+
),
|
550
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
551
|
+
),
|
552
|
+
data_converter: @client.data_converter
|
553
|
+
)
|
554
|
+
)
|
555
|
+
)
|
556
|
+
# Do nothing if update is nil, fail if not an expected update
|
557
|
+
return nil if update.nil?
|
558
|
+
|
559
|
+
unless update.is_a?(Temporalio::Client::Schedule::Update)
|
560
|
+
raise TypeError,
|
561
|
+
'Expected result of update block to be a Schedule::Update'
|
562
|
+
end
|
563
|
+
|
564
|
+
@client.workflow_service.update_schedule(
|
565
|
+
Api::WorkflowService::V1::UpdateScheduleRequest.new(
|
566
|
+
namespace: @client.namespace,
|
567
|
+
schedule_id: input.id,
|
568
|
+
schedule: update.schedule._to_proto(@client.data_converter),
|
569
|
+
search_attributes: update.search_attributes&._to_proto,
|
570
|
+
identity: @client.connection.identity,
|
571
|
+
request_id: SecureRandom.uuid
|
572
|
+
),
|
573
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
383
574
|
)
|
384
575
|
nil
|
385
576
|
end
|
@@ -395,9 +586,7 @@ module Temporalio
|
|
395
586
|
identity: @client.connection.identity,
|
396
587
|
details: @client.data_converter.to_payloads(input.details)
|
397
588
|
),
|
398
|
-
|
399
|
-
rpc_metadata: input.rpc_metadata,
|
400
|
-
rpc_timeout: input.rpc_timeout
|
589
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
401
590
|
)
|
402
591
|
else
|
403
592
|
@client.workflow_service.record_activity_task_heartbeat(
|
@@ -407,9 +596,7 @@ module Temporalio
|
|
407
596
|
identity: @client.connection.identity,
|
408
597
|
details: @client.data_converter.to_payloads(input.details)
|
409
598
|
),
|
410
|
-
|
411
|
-
rpc_metadata: input.rpc_metadata,
|
412
|
-
rpc_timeout: input.rpc_timeout
|
599
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
413
600
|
)
|
414
601
|
end
|
415
602
|
raise Error::AsyncActivityCanceledError if resp.cancel_requested
|
@@ -428,9 +615,7 @@ module Temporalio
|
|
428
615
|
identity: @client.connection.identity,
|
429
616
|
result: @client.data_converter.to_payloads([input.result])
|
430
617
|
),
|
431
|
-
|
432
|
-
rpc_metadata: input.rpc_metadata,
|
433
|
-
rpc_timeout: input.rpc_timeout
|
618
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
434
619
|
)
|
435
620
|
else
|
436
621
|
@client.workflow_service.respond_activity_task_completed(
|
@@ -440,9 +625,7 @@ module Temporalio
|
|
440
625
|
identity: @client.connection.identity,
|
441
626
|
result: @client.data_converter.to_payloads([input.result])
|
442
627
|
),
|
443
|
-
|
444
|
-
rpc_metadata: input.rpc_metadata,
|
445
|
-
rpc_timeout: input.rpc_timeout
|
628
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
446
629
|
)
|
447
630
|
end
|
448
631
|
nil
|
@@ -464,9 +647,7 @@ module Temporalio
|
|
464
647
|
@client.data_converter.to_payloads(input.last_heartbeat_details)
|
465
648
|
end
|
466
649
|
),
|
467
|
-
|
468
|
-
rpc_metadata: input.rpc_metadata,
|
469
|
-
rpc_timeout: input.rpc_timeout
|
650
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
470
651
|
)
|
471
652
|
else
|
472
653
|
@client.workflow_service.respond_activity_task_failed(
|
@@ -481,9 +662,7 @@ module Temporalio
|
|
481
662
|
@client.data_converter.to_payloads(input.last_heartbeat_details)
|
482
663
|
end
|
483
664
|
),
|
484
|
-
|
485
|
-
rpc_metadata: input.rpc_metadata,
|
486
|
-
rpc_timeout: input.rpc_timeout
|
665
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
487
666
|
)
|
488
667
|
end
|
489
668
|
nil
|
@@ -500,9 +679,7 @@ module Temporalio
|
|
500
679
|
identity: @client.connection.identity,
|
501
680
|
details: @client.data_converter.to_payloads(input.details)
|
502
681
|
),
|
503
|
-
|
504
|
-
rpc_metadata: input.rpc_metadata,
|
505
|
-
rpc_timeout: input.rpc_timeout
|
682
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
506
683
|
)
|
507
684
|
else
|
508
685
|
@client.workflow_service.respond_activity_task_canceled(
|
@@ -512,9 +689,7 @@ module Temporalio
|
|
512
689
|
identity: @client.connection.identity,
|
513
690
|
details: @client.data_converter.to_payloads(input.details)
|
514
691
|
),
|
515
|
-
|
516
|
-
rpc_metadata: input.rpc_metadata,
|
517
|
-
rpc_timeout: input.rpc_timeout
|
692
|
+
rpc_options: Implementation.with_default_rpc_options(input.rpc_options)
|
518
693
|
)
|
519
694
|
end
|
520
695
|
nil
|