temporalio 0.1.1 → 0.3.0
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.
- checksums.yaml +4 -4
- data/.yardopts +2 -0
- data/Cargo.lock +4324 -0
- data/Cargo.toml +25 -0
- data/Gemfile +20 -0
- data/LICENSE +16 -15
- data/README.md +985 -183
- data/Rakefile +101 -0
- data/ext/Cargo.toml +26 -0
- data/lib/temporalio/activity/complete_async_error.rb +11 -0
- data/lib/temporalio/activity/context.rb +86 -78
- data/lib/temporalio/activity/definition.rb +175 -0
- data/lib/temporalio/activity/info.rb +44 -47
- data/lib/temporalio/activity.rb +8 -81
- data/lib/temporalio/api/activity/v1/message.rb +25 -0
- data/lib/temporalio/api/batch/v1/message.rb +31 -0
- data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +126 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
- data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
- data/lib/temporalio/api/cloud/identity/v1/message.rb +41 -0
- data/lib/temporalio/api/cloud/namespace/v1/message.rb +42 -0
- data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
- data/lib/temporalio/api/cloud/operation/v1/message.rb +28 -0
- data/lib/temporalio/api/cloud/region/v1/message.rb +24 -0
- 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/command/v1/message.rb +46 -0
- data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
- data/lib/temporalio/api/common/v1/message.rb +47 -0
- data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
- data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/common.rb +26 -0
- data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
- data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
- data/lib/temporalio/api/enums/v1/query.rb +22 -0
- data/lib/temporalio/api/enums/v1/reset.rb +23 -0
- data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
- data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
- data/lib/temporalio/api/enums/v1/update.rb +22 -0
- data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
- data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
- data/lib/temporalio/api/export/v1/message.rb +24 -0
- data/lib/temporalio/api/failure/v1/message.rb +35 -0
- data/lib/temporalio/api/filter/v1/message.rb +27 -0
- data/lib/temporalio/api/history/v1/message.rb +90 -0
- data/lib/temporalio/api/namespace/v1/message.rb +31 -0
- data/lib/temporalio/api/nexus/v1/message.rb +40 -0
- data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
- data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
- data/lib/temporalio/api/operatorservice.rb +3 -0
- data/lib/temporalio/api/payload_visitor.rb +1513 -0
- data/lib/temporalio/api/protocol/v1/message.rb +23 -0
- data/lib/temporalio/api/query/v1/message.rb +27 -0
- data/lib/temporalio/api/replication/v1/message.rb +26 -0
- data/lib/temporalio/api/schedule/v1/message.rb +43 -0
- data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
- data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
- data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
- data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
- data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
- data/lib/{gen/temporal/api/testservice/v1/request_response_pb.rb → temporalio/api/testservice/v1/request_response.rb} +6 -24
- data/lib/temporalio/api/testservice/v1/service.rb +23 -0
- data/lib/temporalio/api/update/v1/message.rb +33 -0
- data/lib/temporalio/api/version/v1/message.rb +26 -0
- data/lib/temporalio/api/workflow/v1/message.rb +43 -0
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +204 -0
- data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
- data/lib/temporalio/api/workflowservice.rb +3 -0
- data/lib/temporalio/api.rb +14 -0
- data/lib/temporalio/cancellation.rb +170 -0
- data/lib/temporalio/client/activity_id_reference.rb +32 -0
- data/lib/temporalio/client/async_activity_handle.rb +85 -0
- data/lib/temporalio/client/connection/cloud_service.rb +726 -0
- data/lib/temporalio/client/connection/operator_service.rb +201 -0
- data/lib/temporalio/client/connection/service.rb +42 -0
- data/lib/temporalio/client/connection/test_service.rb +111 -0
- data/lib/temporalio/client/connection/workflow_service.rb +1041 -0
- data/lib/temporalio/client/connection.rb +316 -0
- data/lib/temporalio/client/interceptor.rb +416 -0
- data/lib/temporalio/client/schedule.rb +967 -0
- data/lib/temporalio/client/schedule_handle.rb +126 -0
- data/lib/temporalio/client/workflow_execution.rb +100 -0
- data/lib/temporalio/client/workflow_execution_count.rb +36 -0
- data/lib/temporalio/client/workflow_execution_status.rb +18 -0
- data/lib/temporalio/client/workflow_handle.rb +326 -180
- data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
- data/lib/temporalio/client/workflow_update_handle.rb +65 -0
- data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
- data/lib/temporalio/client.rb +447 -94
- data/lib/temporalio/common_enums.rb +41 -0
- data/lib/temporalio/converters/data_converter.rb +99 -0
- data/lib/temporalio/converters/failure_converter.rb +202 -0
- data/lib/temporalio/converters/payload_codec.rb +26 -0
- data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
- data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
- data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
- data/lib/temporalio/converters/payload_converter/composite.rb +66 -0
- data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
- data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
- data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
- data/lib/temporalio/converters/payload_converter.rb +71 -0
- data/lib/temporalio/converters/raw_value.rb +20 -0
- data/lib/temporalio/converters.rb +9 -0
- data/lib/temporalio/error/failure.rb +119 -94
- data/lib/temporalio/error.rb +155 -0
- data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
- data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
- data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
- data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
- data/lib/temporalio/internal/bridge/api/core_interface.rb +40 -0
- data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
- data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
- data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +56 -0
- data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +57 -0
- data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
- data/lib/temporalio/internal/bridge/api.rb +3 -0
- data/lib/temporalio/internal/bridge/client.rb +95 -0
- data/lib/temporalio/internal/bridge/runtime.rb +53 -0
- data/lib/temporalio/internal/bridge/testing.rb +66 -0
- data/lib/temporalio/internal/bridge/worker.rb +85 -0
- data/lib/temporalio/internal/bridge.rb +36 -0
- data/lib/temporalio/internal/client/implementation.rb +700 -0
- data/lib/temporalio/internal/metric.rb +122 -0
- data/lib/temporalio/internal/proto_utils.rb +133 -0
- data/lib/temporalio/internal/worker/activity_worker.rb +373 -0
- data/lib/temporalio/internal/worker/multi_runner.rb +213 -0
- 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/internal.rb +7 -0
- data/lib/temporalio/metric.rb +109 -0
- data/lib/temporalio/retry_policy.rb +55 -73
- data/lib/temporalio/runtime.rb +302 -13
- data/lib/temporalio/scoped_logger.rb +96 -0
- data/lib/temporalio/search_attributes.rb +343 -0
- data/lib/temporalio/testing/activity_environment.rb +132 -0
- data/lib/temporalio/testing/workflow_environment.rb +345 -74
- data/lib/temporalio/testing.rb +4 -169
- data/lib/temporalio/version.rb +3 -1
- data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
- data/lib/temporalio/worker/activity_executor/thread_pool.rb +46 -0
- data/lib/temporalio/worker/activity_executor.rb +55 -0
- data/lib/temporalio/worker/interceptor.rb +362 -0
- data/lib/temporalio/worker/thread_pool.rb +237 -0
- data/lib/temporalio/worker/tuner.rb +151 -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 +554 -161
- 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 +117 -104
- data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
- data/lib/temporalio/workflow/info.rb +63 -57
- 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/workflow_history.rb +22 -0
- data/lib/temporalio.rb +6 -7
- data/temporalio.gemspec +20 -39
- metadata +171 -710
- data/bridge/Cargo.lock +0 -2997
- data/bridge/Cargo.toml +0 -29
- data/bridge/sdk-core/ARCHITECTURE.md +0 -76
- data/bridge/sdk-core/Cargo.toml +0 -2
- data/bridge/sdk-core/LICENSE.txt +0 -23
- data/bridge/sdk-core/README.md +0 -117
- data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
- data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
- data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
- data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
- data/bridge/sdk-core/client/Cargo.toml +0 -40
- data/bridge/sdk-core/client/LICENSE.txt +0 -23
- data/bridge/sdk-core/client/src/lib.rs +0 -1462
- data/bridge/sdk-core/client/src/metrics.rs +0 -174
- data/bridge/sdk-core/client/src/raw.rs +0 -932
- data/bridge/sdk-core/client/src/retry.rs +0 -763
- data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
- data/bridge/sdk-core/core/Cargo.toml +0 -129
- data/bridge/sdk-core/core/LICENSE.txt +0 -23
- data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
- data/bridge/sdk-core/core/src/abstractions.rs +0 -355
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
- data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
- data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
- data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
- data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
- data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
- data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
- data/bridge/sdk-core/core/src/lib.rs +0 -289
- data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
- data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
- data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
- data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
- data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
- data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
- data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
- data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
- data/bridge/sdk-core/core/src/worker/client.rs +0 -389
- data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
- data/bridge/sdk-core/core-api/Cargo.toml +0 -33
- data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
- data/bridge/sdk-core/core-api/src/errors.rs +0 -62
- data/bridge/sdk-core/core-api/src/lib.rs +0 -113
- data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
- data/bridge/sdk-core/core-api/src/worker.rs +0 -161
- data/bridge/sdk-core/etc/deps.svg +0 -162
- data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
- data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
- data/bridge/sdk-core/etc/prometheus.yaml +0 -6
- data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
- data/bridge/sdk-core/fsm/Cargo.toml +0 -18
- data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/README.md +0 -3
- data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
- data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
- data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
- data/bridge/sdk-core/fsm/src/lib.rs +0 -2
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
- data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
- data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
- data/bridge/sdk-core/integ-with-otel.sh +0 -7
- data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
- data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
- data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
- data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
- data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
- data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
- data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
- data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
- data/bridge/sdk-core/rustfmt.toml +0 -1
- data/bridge/sdk-core/sdk/Cargo.toml +0 -48
- data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
- data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
- data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
- data/bridge/sdk-core/sdk/src/lib.rs +0 -861
- data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
- data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
- data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
- data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
- data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
- data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
- data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
- data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
- data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
- data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
- data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
- data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
- data/bridge/sdk-core/tests/main.rs +0 -103
- data/bridge/sdk-core/tests/runner.rs +0 -132
- data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
- data/bridge/src/connection.rs +0 -202
- data/bridge/src/lib.rs +0 -494
- data/bridge/src/runtime.rs +0 -54
- data/bridge/src/test_server.rs +0 -153
- data/bridge/src/worker.rs +0 -197
- data/ext/Rakefile +0 -9
- data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
- data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
- data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
- data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
- data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
- data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
- data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
- data/lib/temporalio/bridge/connect_options.rb +0 -15
- data/lib/temporalio/bridge/error.rb +0 -8
- data/lib/temporalio/bridge/retry_config.rb +0 -24
- data/lib/temporalio/bridge/tls_options.rb +0 -19
- data/lib/temporalio/bridge.rb +0 -14
- data/lib/temporalio/client/implementation.rb +0 -340
- data/lib/temporalio/connection/retry_config.rb +0 -44
- data/lib/temporalio/connection/service.rb +0 -20
- data/lib/temporalio/connection/test_service.rb +0 -92
- data/lib/temporalio/connection/tls_options.rb +0 -51
- data/lib/temporalio/connection/workflow_service.rb +0 -731
- data/lib/temporalio/connection.rb +0 -86
- data/lib/temporalio/data_converter.rb +0 -191
- data/lib/temporalio/error/workflow_failure.rb +0 -19
- data/lib/temporalio/errors.rb +0 -40
- data/lib/temporalio/failure_converter/base.rb +0 -26
- data/lib/temporalio/failure_converter/basic.rb +0 -319
- data/lib/temporalio/failure_converter.rb +0 -7
- data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
- data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
- data/lib/temporalio/interceptor/chain.rb +0 -28
- data/lib/temporalio/interceptor/client.rb +0 -127
- data/lib/temporalio/interceptor.rb +0 -22
- data/lib/temporalio/payload_codec/base.rb +0 -32
- data/lib/temporalio/payload_converter/base.rb +0 -24
- data/lib/temporalio/payload_converter/bytes.rb +0 -27
- data/lib/temporalio/payload_converter/composite.rb +0 -49
- data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
- data/lib/temporalio/payload_converter/json.rb +0 -26
- data/lib/temporalio/payload_converter/nil.rb +0 -26
- data/lib/temporalio/payload_converter.rb +0 -14
- data/lib/temporalio/retry_state.rb +0 -35
- data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
- data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
- data/lib/temporalio/timeout_type.rb +0 -29
- data/lib/temporalio/worker/activity_runner.rb +0 -114
- data/lib/temporalio/worker/activity_worker.rb +0 -164
- data/lib/temporalio/worker/reactor.rb +0 -46
- data/lib/temporalio/worker/runner.rb +0 -63
- data/lib/temporalio/worker/sync_worker.rb +0 -124
- data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
- data/lib/temporalio/workflow/async.rb +0 -46
- data/lib/temporalio/workflow/execution_info.rb +0 -54
- data/lib/temporalio/workflow/execution_status.rb +0 -36
- data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
- data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
- data/lib/thermite_patch.rb +0 -33
- data/sig/async.rbs +0 -17
- data/sig/protobuf.rbs +0 -16
- data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
- data/sig/protos/google/protobuf/any.rbs +0 -157
- data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
- data/sig/protos/google/protobuf/duration.rbs +0 -114
- data/sig/protos/google/protobuf/empty.rbs +0 -36
- data/sig/protos/google/protobuf/timestamp.rbs +0 -145
- data/sig/protos/google/protobuf/wrappers.rbs +0 -358
- data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
- data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
- data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
- data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
- data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
- data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
- data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
- data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
- data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
- data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
- data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
- data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
- data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
- data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
- data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
- data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
- data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
- data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
- data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
- data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
- data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
- data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
- data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
- data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
- data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
- data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
- data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
- data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
- data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
- data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
- data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
- data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
- data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
- data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
- data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
- data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
- data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
- data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
- data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
- data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
- data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
- data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
- data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
- data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
- data/sig/ruby.rbs +0 -12
- data/sig/temporalio/activity/context.rbs +0 -29
- data/sig/temporalio/activity/info.rbs +0 -43
- data/sig/temporalio/activity.rbs +0 -19
- data/sig/temporalio/bridge/connect_options.rbs +0 -19
- data/sig/temporalio/bridge/error.rbs +0 -8
- data/sig/temporalio/bridge/retry_config.rbs +0 -21
- data/sig/temporalio/bridge/tls_options.rbs +0 -17
- data/sig/temporalio/bridge.rbs +0 -71
- data/sig/temporalio/client/implementation.rbs +0 -38
- data/sig/temporalio/client/workflow_handle.rbs +0 -41
- data/sig/temporalio/client.rbs +0 -35
- data/sig/temporalio/connection/retry_config.rbs +0 -37
- data/sig/temporalio/connection/service.rbs +0 -14
- data/sig/temporalio/connection/test_service.rbs +0 -13
- data/sig/temporalio/connection/tls_options.rbs +0 -43
- data/sig/temporalio/connection/workflow_service.rbs +0 -48
- data/sig/temporalio/connection.rbs +0 -30
- data/sig/temporalio/data_converter.rbs +0 -35
- data/sig/temporalio/error/failure.rbs +0 -121
- data/sig/temporalio/error/workflow_failure.rbs +0 -9
- data/sig/temporalio/errors.rbs +0 -36
- data/sig/temporalio/failure_converter/base.rbs +0 -12
- data/sig/temporalio/failure_converter/basic.rbs +0 -86
- data/sig/temporalio/failure_converter.rbs +0 -5
- data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
- data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
- data/sig/temporalio/interceptor/chain.rbs +0 -24
- data/sig/temporalio/interceptor/client.rbs +0 -148
- data/sig/temporalio/interceptor.rbs +0 -6
- data/sig/temporalio/payload_codec/base.rbs +0 -12
- data/sig/temporalio/payload_converter/base.rbs +0 -12
- data/sig/temporalio/payload_converter/bytes.rbs +0 -9
- data/sig/temporalio/payload_converter/composite.rbs +0 -19
- data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
- data/sig/temporalio/payload_converter/json.rbs +0 -9
- data/sig/temporalio/payload_converter/nil.rbs +0 -9
- data/sig/temporalio/payload_converter.rbs +0 -5
- data/sig/temporalio/retry_policy.rbs +0 -25
- data/sig/temporalio/retry_state.rbs +0 -20
- data/sig/temporalio/runtime.rbs +0 -12
- data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
- data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
- data/sig/temporalio/testing/workflow_environment.rbs +0 -22
- data/sig/temporalio/testing.rbs +0 -35
- data/sig/temporalio/timeout_type.rbs +0 -15
- data/sig/temporalio/version.rbs +0 -3
- data/sig/temporalio/worker/activity_runner.rbs +0 -35
- data/sig/temporalio/worker/activity_worker.rbs +0 -44
- data/sig/temporalio/worker/reactor.rbs +0 -22
- data/sig/temporalio/worker/runner.rbs +0 -21
- data/sig/temporalio/worker/sync_worker.rbs +0 -23
- data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
- data/sig/temporalio/worker.rbs +0 -46
- data/sig/temporalio/workflow/async.rbs +0 -9
- data/sig/temporalio/workflow/execution_info.rbs +0 -55
- data/sig/temporalio/workflow/execution_status.rbs +0 -21
- data/sig/temporalio/workflow/future.rbs +0 -40
- data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
- data/sig/temporalio/workflow/info.rbs +0 -55
- data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
- data/sig/temporalio.rbs +0 -2
- data/sig/thermite_patch.rbs +0 -15
data/Rakefile
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# rubocop:disable Lint/MissingCopEnableDirective, Style/DocumentationMethod
|
|
4
|
+
|
|
5
|
+
require 'bundler/gem_tasks'
|
|
6
|
+
require 'rb_sys/cargo/metadata'
|
|
7
|
+
require 'rb_sys/extensiontask'
|
|
8
|
+
|
|
9
|
+
task build: :compile
|
|
10
|
+
|
|
11
|
+
GEMSPEC = Gem::Specification.load('temporalio.gemspec')
|
|
12
|
+
|
|
13
|
+
begin
|
|
14
|
+
RbSys::ExtensionTask.new('temporalio_bridge', GEMSPEC) do |ext|
|
|
15
|
+
ext.lib_dir = 'lib/temporalio/internal/bridge'
|
|
16
|
+
end
|
|
17
|
+
rescue RbSys::CargoMetadataError
|
|
18
|
+
raise 'Source gem cannot be installed directly, must be a supported platform'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
require 'rake/testtask'
|
|
22
|
+
|
|
23
|
+
Rake::TestTask.new(:test) do |t|
|
|
24
|
+
t.warning = false
|
|
25
|
+
t.libs << 'test'
|
|
26
|
+
t.libs << 'lib'
|
|
27
|
+
t.test_files = FileList['test/**/*_test.rb']
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def add_protoc_to_path
|
|
31
|
+
tools_spec = Gem::Specification.find_by_name('grpc-tools')
|
|
32
|
+
cpu = RbConfig::CONFIG['host_cpu']
|
|
33
|
+
cpu = 'x86_64' if cpu == 'x64'
|
|
34
|
+
os = RbConfig::CONFIG['host_os']
|
|
35
|
+
os = 'windows' if os.start_with?('mingw')
|
|
36
|
+
protoc_path = "#{tools_spec.gem_dir}/bin/#{cpu}-#{os}"
|
|
37
|
+
separator = os == 'windows' ? ';' : ':'
|
|
38
|
+
ENV['PATH'] = "#{ENV.fetch('PATH', nil)}#{separator}#{protoc_path}"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
add_protoc_to_path
|
|
42
|
+
|
|
43
|
+
require 'rubocop/rake_task'
|
|
44
|
+
|
|
45
|
+
RuboCop::RakeTask.new
|
|
46
|
+
|
|
47
|
+
require 'steep/rake_task'
|
|
48
|
+
|
|
49
|
+
Steep::RakeTask.new
|
|
50
|
+
|
|
51
|
+
require 'yard'
|
|
52
|
+
|
|
53
|
+
module CustomizeYardWarnings # rubocop:disable Style/Documentation
|
|
54
|
+
def process
|
|
55
|
+
super
|
|
56
|
+
rescue YARD::Parser::UndocumentableError
|
|
57
|
+
# We ignore if it's an API warning
|
|
58
|
+
last_file = statement.last.file
|
|
59
|
+
raise unless (last_file.start_with?('lib/temporalio/api/') && last_file.count('/') > 3) ||
|
|
60
|
+
last_file.start_with?('lib/temporalio/internal/bridge/api/')
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
YARD::Handlers::Ruby::ConstantHandler.prepend(CustomizeYardWarnings)
|
|
65
|
+
|
|
66
|
+
YARD::Rake::YardocTask.new { |t| t.options = ['--fail-on-warning'] }
|
|
67
|
+
|
|
68
|
+
Rake::Task[:yard].enhance([:copy_parent_files]) do
|
|
69
|
+
rm ['LICENSE', 'README.md']
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
namespace :proto do
|
|
73
|
+
desc 'Generate API and Core protobufs'
|
|
74
|
+
task :generate do
|
|
75
|
+
require_relative 'extra/proto_gen'
|
|
76
|
+
ProtoGen.new.run
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
namespace :rbs do
|
|
81
|
+
desc 'RBS tasks'
|
|
82
|
+
task :install_collection do
|
|
83
|
+
sh 'rbs collection install'
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# We have to copy some parent files to this dir for gem
|
|
88
|
+
task :copy_parent_files do
|
|
89
|
+
cp '../LICENSE', 'LICENSE'
|
|
90
|
+
cp '../README.md', 'README.md'
|
|
91
|
+
end
|
|
92
|
+
Rake::Task[:build].enhance([:copy_parent_files]) do
|
|
93
|
+
rm ['LICENSE', 'README.md']
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
task :rust_lint do
|
|
97
|
+
sh 'cargo', 'clippy', '--', '-Dwarnings'
|
|
98
|
+
sh 'cargo', 'fmt', '--check'
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
task default: ['rubocop', 'yard', 'rbs:install_collection', 'steep', 'rust_lint', 'compile', 'test']
|
data/ext/Cargo.toml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "temporalio_bridge"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
authors = ["Chad Retz <chad@temporal.io>"]
|
|
6
|
+
license = "MIT"
|
|
7
|
+
publish = false
|
|
8
|
+
|
|
9
|
+
[lib]
|
|
10
|
+
crate-type = ["cdylib"]
|
|
11
|
+
|
|
12
|
+
[dependencies]
|
|
13
|
+
futures = "0.3"
|
|
14
|
+
magnus = "0.7"
|
|
15
|
+
parking_lot = "0.12"
|
|
16
|
+
prost = "0.13"
|
|
17
|
+
rb-sys = "0.9"
|
|
18
|
+
temporal-client = { version = "0.1.0", path = "./sdk-core/client" }
|
|
19
|
+
temporal-sdk-core = { version = "0.1.0", path = "./sdk-core/core", features = ["ephemeral-server"] }
|
|
20
|
+
temporal-sdk-core-api = { version = "0.1.0", path = "./sdk-core/core-api" }
|
|
21
|
+
temporal-sdk-core-protos = { version = "0.1.0", path = "./sdk-core/sdk-core-protos" }
|
|
22
|
+
tokio = "1.26"
|
|
23
|
+
tokio-util = "0.7"
|
|
24
|
+
tonic = "0.12"
|
|
25
|
+
tracing = "0.1"
|
|
26
|
+
url = "2.2"
|
|
@@ -1,102 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'temporalio/error'
|
|
3
4
|
|
|
4
5
|
module Temporalio
|
|
5
|
-
|
|
6
|
-
#
|
|
6
|
+
module Activity
|
|
7
|
+
# Context accessible only within an activity. Use {current} to get the current context. Contexts are fiber or thread
|
|
8
|
+
# local so may not be available in a newly started thread from an activity and may have to be propagated manually.
|
|
7
9
|
class Context
|
|
8
|
-
# @
|
|
9
|
-
def
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
@pending_cancellation = nil
|
|
15
|
-
@shielded = shielded
|
|
16
|
-
@mutex = Mutex.new
|
|
10
|
+
# @return [Context] The current context, or raises an error if not in activity fiber/thread.
|
|
11
|
+
def self.current
|
|
12
|
+
context = current_or_nil
|
|
13
|
+
raise Error, 'Not in activity context' if context.nil?
|
|
14
|
+
|
|
15
|
+
context
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
#
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def info
|
|
23
|
-
interceptors.invoke(:activity_info) { @info }
|
|
18
|
+
# @return [Context, nil] The current context or nil if not in activity fiber/thread.
|
|
19
|
+
def self.current_or_nil
|
|
20
|
+
_current_executor&.activity_context
|
|
24
21
|
end
|
|
25
22
|
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def heartbeat(*details)
|
|
30
|
-
interceptors.invoke(:heartbeat, *details) do |*d|
|
|
31
|
-
@heartbeat_proc.call(*d)
|
|
32
|
-
end
|
|
23
|
+
# @return [Boolean] Whether there is a current context available.
|
|
24
|
+
def self.exist?
|
|
25
|
+
!current_or_nil.nil?
|
|
33
26
|
end
|
|
34
27
|
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
# For shielding a whole activity consider using {Temporalio::Activity.shielded!}.
|
|
42
|
-
#
|
|
43
|
-
# A cancellation that got requested while in a shielded block will not interrupt the execution
|
|
44
|
-
# and will raise a {Temporalio::Error::CancelledError} right after the block has finished.
|
|
45
|
-
#
|
|
46
|
-
# @yield Block to be protected from cancellations.
|
|
47
|
-
def shield(&block)
|
|
48
|
-
# The whole activity is shielded, called from a nested shield
|
|
49
|
-
# or while handling a CancelledError (in a rescue or ensure blocks)
|
|
50
|
-
return block.call if @shielded || cancelled?
|
|
51
|
-
|
|
52
|
-
if Thread.current != thread
|
|
53
|
-
# TODO: Use logger instead when implemented
|
|
54
|
-
warn "Activity shielding is not intended to be used outside of activity's thread."
|
|
55
|
-
return block.call
|
|
28
|
+
# @!visibility private
|
|
29
|
+
def self._current_executor
|
|
30
|
+
if Fiber.current_scheduler
|
|
31
|
+
Fiber[:temporal_activity_executor]
|
|
32
|
+
else
|
|
33
|
+
Thread.current[:temporal_activity_executor]
|
|
56
34
|
end
|
|
35
|
+
end
|
|
57
36
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
result
|
|
65
|
-
ensure # runs while still holding the lock
|
|
66
|
-
@shielded = false
|
|
37
|
+
# @!visibility private
|
|
38
|
+
def self._current_executor=(executor)
|
|
39
|
+
if Fiber.current_scheduler
|
|
40
|
+
Fiber[:temporal_activity_executor] = executor
|
|
41
|
+
else
|
|
42
|
+
Thread.current[:temporal_activity_executor] = executor
|
|
67
43
|
end
|
|
68
44
|
end
|
|
69
45
|
|
|
70
|
-
#
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
def cancelled?
|
|
74
|
-
!!@pending_cancellation
|
|
46
|
+
# @return [Info] Activity info for this activity.
|
|
47
|
+
def info
|
|
48
|
+
raise NotImplementedError
|
|
75
49
|
end
|
|
76
50
|
|
|
77
|
-
#
|
|
51
|
+
# Record a heartbeat on the activity.
|
|
78
52
|
#
|
|
79
|
-
#
|
|
80
|
-
#
|
|
53
|
+
# Heartbeats should be used for all non-immediately-returning, non-local activities and they are required to
|
|
54
|
+
# receive cancellation. Heartbeat calls are throttled internally based on the heartbeat timeout of the activity.
|
|
55
|
+
# Users do not have to be concerned with burdening the server by calling this too frequently.
|
|
81
56
|
#
|
|
82
|
-
# @
|
|
83
|
-
def
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
57
|
+
# @param details [Array<Object>] Details to record with the heartbeat.
|
|
58
|
+
def heartbeat(*details)
|
|
59
|
+
raise NotImplementedError
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @return [Cancellation] Cancellation that is canceled when the activity is canceled.
|
|
63
|
+
def cancellation
|
|
64
|
+
raise NotImplementedError
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @return [Cancellation] Cancellation that is canceled when the worker is shutting down. On worker shutdown, this
|
|
68
|
+
# is canceled, then the `graceful_shutdown_period` is waited (default 0s), then the activity is canceled.
|
|
69
|
+
def worker_shutdown_cancellation
|
|
70
|
+
raise NotImplementedError
|
|
95
71
|
end
|
|
96
72
|
|
|
97
|
-
|
|
73
|
+
# @return [Converters::PayloadConverter] Payload converter associated with this activity.
|
|
74
|
+
def payload_converter
|
|
75
|
+
raise NotImplementedError
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# @return [ScopedLogger] Logger for this activity. Note, this is a shared logger not created each activity
|
|
79
|
+
# invocation. It just has logic to extract current activity details and so is only able to do so on log calls
|
|
80
|
+
# made with a current context available.
|
|
81
|
+
def logger
|
|
82
|
+
raise NotImplementedError
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# @!visibility private
|
|
86
|
+
def _scoped_logger_info
|
|
87
|
+
return @scoped_logger_info unless @scoped_logger_info.nil?
|
|
98
88
|
|
|
99
|
-
|
|
89
|
+
curr_info = info
|
|
90
|
+
@scoped_logger_info = {
|
|
91
|
+
temporal_activity: {
|
|
92
|
+
activity_id: curr_info.activity_id,
|
|
93
|
+
activity_type: curr_info.activity_type,
|
|
94
|
+
attempt: curr_info.attempt,
|
|
95
|
+
task_queue: curr_info.task_queue,
|
|
96
|
+
workflow_id: curr_info.workflow_id,
|
|
97
|
+
workflow_namespace: curr_info.workflow_namespace,
|
|
98
|
+
workflow_run_id: curr_info.workflow_run_id,
|
|
99
|
+
workflow_type: curr_info.workflow_type
|
|
100
|
+
}
|
|
101
|
+
}.freeze
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# @return [Metric::Meter] Metric meter to create metrics on, with some activity-specific attributes already set.
|
|
105
|
+
def metric_meter
|
|
106
|
+
raise NotImplementedError
|
|
107
|
+
end
|
|
100
108
|
end
|
|
101
109
|
end
|
|
102
110
|
end
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Temporalio
|
|
4
|
+
module Activity
|
|
5
|
+
# Base class for all activities.
|
|
6
|
+
#
|
|
7
|
+
# Activities can be given to a worker as instances of this class, which will call execute on the same instance for
|
|
8
|
+
# each execution, or given to the worker as the class itself which instantiates the activity for each execution.
|
|
9
|
+
#
|
|
10
|
+
# All activities must implement {execute}. Inside execute, {Activity::Context.current} can be used to access the
|
|
11
|
+
# current context to get information, issue heartbeats, etc.
|
|
12
|
+
#
|
|
13
|
+
# By default, the activity is named as its unqualified class name. This can be customized with {activity_name}.
|
|
14
|
+
#
|
|
15
|
+
# By default, the activity uses the `:default` executor which is usually the thread-pool based executor. This can be
|
|
16
|
+
# customized with {activity_executor}.
|
|
17
|
+
#
|
|
18
|
+
# By default, upon cancellation {::Thread.raise} or {::Fiber.raise} is called with a {Error::CanceledError}. This
|
|
19
|
+
# can be disabled by passing `false` to {activity_cancel_raise}.
|
|
20
|
+
#
|
|
21
|
+
# See documentation for more detail on activities.
|
|
22
|
+
class Definition
|
|
23
|
+
class << self
|
|
24
|
+
protected
|
|
25
|
+
|
|
26
|
+
# Override the activity name which is defaulted to the unqualified class name.
|
|
27
|
+
#
|
|
28
|
+
# @param name [String, Symbol] Name to use.
|
|
29
|
+
def activity_name(name)
|
|
30
|
+
if !name.is_a?(Symbol) && !name.is_a?(String)
|
|
31
|
+
raise ArgumentError,
|
|
32
|
+
'Activity name must be a symbol or string'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
@activity_name = name.to_s
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Override the activity executor which is defaulted to `:default`.
|
|
39
|
+
#
|
|
40
|
+
# @param executor_name [Symbol] Executor to use.
|
|
41
|
+
def activity_executor(executor_name)
|
|
42
|
+
raise ArgumentError, 'Executor name must be a symbol' unless executor_name.is_a?(Symbol)
|
|
43
|
+
|
|
44
|
+
@activity_executor = executor_name
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Override whether the activity uses Thread/Fiber raise for cancellation which is defaulted to true.
|
|
48
|
+
#
|
|
49
|
+
# @param cancel_raise [Boolean] Whether to raise.
|
|
50
|
+
def activity_cancel_raise(cancel_raise)
|
|
51
|
+
unless cancel_raise.is_a?(TrueClass) || cancel_raise.is_a?(FalseClass)
|
|
52
|
+
raise ArgumentError, 'Must be a boolean'
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
@activity_cancel_raise = cancel_raise
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Set an activity as dynamic. Dynamic activities do not have names and handle any activity that is not otherwise
|
|
59
|
+
# registered. A worker can only have one dynamic activity. It is often useful to use {activity_raw_args} with
|
|
60
|
+
# this.
|
|
61
|
+
#
|
|
62
|
+
# @param value [Boolean] Whether the activity is dynamic.
|
|
63
|
+
def activity_dynamic(value = true) # rubocop:disable Style/OptionalBooleanParameter
|
|
64
|
+
raise ArgumentError, 'Must be a boolean' unless value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
|
65
|
+
|
|
66
|
+
@activity_dynamic = value
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Have activity arguments delivered to `execute` as {Converters::RawValue}s. These are wrappers for the raw
|
|
70
|
+
# payloads that have not been converted to types (but they have been decoded by the codec if present). They can
|
|
71
|
+
# be converted with {Context#payload_converter}.
|
|
72
|
+
#
|
|
73
|
+
# @param value [Boolean] Whether the activity accepts raw arguments.
|
|
74
|
+
def activity_raw_args(value = true) # rubocop:disable Style/OptionalBooleanParameter
|
|
75
|
+
raise ArgumentError, 'Must be a boolean' unless value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
|
76
|
+
|
|
77
|
+
@activity_raw_args = value
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# @!visibility private
|
|
82
|
+
def self._activity_definition_details
|
|
83
|
+
activity_name = @activity_name
|
|
84
|
+
raise 'Cannot have activity name specified for dynamic activity' if activity_name && @activity_dynamic
|
|
85
|
+
|
|
86
|
+
# Default to unqualified class name if not dynamic
|
|
87
|
+
activity_name ||= name.to_s.split('::').last unless @activity_dynamic
|
|
88
|
+
{
|
|
89
|
+
activity_name:,
|
|
90
|
+
activity_executor: @activity_executor || :default,
|
|
91
|
+
activity_cancel_raise: @activity_cancel_raise.nil? ? true : @activity_cancel_raise,
|
|
92
|
+
activity_raw_args: @activity_raw_args.nil? ? false : @activity_raw_args
|
|
93
|
+
}
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Implementation of the activity. The arguments should be positional and this should return the value on success
|
|
97
|
+
# or raise an error on failure.
|
|
98
|
+
def execute(*args)
|
|
99
|
+
raise NotImplementedError, 'Activity did not implement "execute"'
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Definition info of an activity. Activities are usually classes/instances that extend {Definition}, but
|
|
103
|
+
# definitions can also be manually created with a block via {initialize} here.
|
|
104
|
+
class Info
|
|
105
|
+
# @return [String, Symbol, nil] Name of the activity, or nil if the activity is dynamic.
|
|
106
|
+
attr_reader :name
|
|
107
|
+
|
|
108
|
+
# @return [Proc] Proc for the activity.
|
|
109
|
+
attr_reader :proc
|
|
110
|
+
|
|
111
|
+
# @return [Symbol] Name of the executor. Default is `:default`.
|
|
112
|
+
attr_reader :executor
|
|
113
|
+
|
|
114
|
+
# @return [Boolean] Whether to raise in thread/fiber on cancellation. Default is `true`.
|
|
115
|
+
attr_reader :cancel_raise
|
|
116
|
+
|
|
117
|
+
# @return [Boolean] Whether to use {Converters::RawValue}s as arguments.
|
|
118
|
+
attr_reader :raw_args
|
|
119
|
+
|
|
120
|
+
# Obtain definition info representing the given activity, which can be a class, instance, or definition info.
|
|
121
|
+
#
|
|
122
|
+
# @param activity [Definition, Class<Definition>, Info] Activity to get info for.
|
|
123
|
+
# @return Info Obtained definition info.
|
|
124
|
+
def self.from_activity(activity)
|
|
125
|
+
# Class means create each time, instance means just call, definition
|
|
126
|
+
# does nothing special
|
|
127
|
+
case activity
|
|
128
|
+
when Class
|
|
129
|
+
unless activity < Definition
|
|
130
|
+
raise ArgumentError,
|
|
131
|
+
"Class '#{activity}' does not extend Temporalio::Activity::Definition"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
details = activity._activity_definition_details
|
|
135
|
+
new(
|
|
136
|
+
name: details[:activity_name],
|
|
137
|
+
executor: details[:activity_executor],
|
|
138
|
+
cancel_raise: details[:activity_cancel_raise],
|
|
139
|
+
raw_args: details[:activity_raw_args]
|
|
140
|
+
) { |*args| activity.new.execute(*args) } # Instantiate and call
|
|
141
|
+
when Definition
|
|
142
|
+
details = activity.class._activity_definition_details
|
|
143
|
+
new(
|
|
144
|
+
name: details[:activity_name],
|
|
145
|
+
executor: details[:activity_executor],
|
|
146
|
+
cancel_raise: details[:activity_cancel_raise],
|
|
147
|
+
raw_args: details[:activity_raw_args]
|
|
148
|
+
) { |*args| activity.execute(*args) } # Just and call
|
|
149
|
+
when Info
|
|
150
|
+
activity
|
|
151
|
+
else
|
|
152
|
+
raise ArgumentError, "#{activity} is not an activity class, instance, or definition info"
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Manually create activity definition info. Most users will use an instance/class of {Definition}.
|
|
157
|
+
#
|
|
158
|
+
# @param name [String, Symbol, nil] Name of the activity or nil for dynamic activity.
|
|
159
|
+
# @param executor [Symbol] Name of the executor.
|
|
160
|
+
# @param cancel_raise [Boolean] Whether to raise in thread/fiber on cancellation.
|
|
161
|
+
# @param raw_args [Boolean] Whether to use {Converters::RawValue}s as arguments.
|
|
162
|
+
# @yield Use this block as the activity.
|
|
163
|
+
def initialize(name:, executor: :default, cancel_raise: true, raw_args: false, &block)
|
|
164
|
+
@name = name
|
|
165
|
+
raise ArgumentError, 'Must give block' unless block_given?
|
|
166
|
+
|
|
167
|
+
@proc = block
|
|
168
|
+
@executor = executor
|
|
169
|
+
@cancel_raise = cancel_raise
|
|
170
|
+
@raw_args = raw_args
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Temporalio
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class Info < Struct.new(
|
|
4
|
+
module Activity
|
|
5
|
+
Info = Data.define(
|
|
5
6
|
:activity_id,
|
|
6
7
|
:activity_type,
|
|
7
8
|
:attempt,
|
|
8
9
|
:current_attempt_scheduled_time,
|
|
9
10
|
:heartbeat_details,
|
|
10
11
|
:heartbeat_timeout,
|
|
11
|
-
:local
|
|
12
|
+
:local?,
|
|
12
13
|
:schedule_to_close_timeout,
|
|
13
14
|
:scheduled_time,
|
|
14
15
|
:start_to_close_timeout,
|
|
@@ -18,50 +19,46 @@ module Temporalio
|
|
|
18
19
|
:workflow_id,
|
|
19
20
|
:workflow_namespace,
|
|
20
21
|
:workflow_run_id,
|
|
21
|
-
:workflow_type
|
|
22
|
-
keyword_init: true,
|
|
22
|
+
:workflow_type
|
|
23
23
|
)
|
|
24
|
-
# @!attribute [r] activity_id
|
|
25
|
-
# @return [String] Activity ID.
|
|
26
|
-
# @!attribute [r] activity_type
|
|
27
|
-
# @return [String] Name of the activity.
|
|
28
|
-
# @!attribute [r] attempt
|
|
29
|
-
# @return [Integer] Activity's execution attempt.
|
|
30
|
-
# @!attribute [r] current_attempt_scheduled_time
|
|
31
|
-
# @return [Time] Scheduled time of the current attempt.
|
|
32
|
-
# @!attribute [r] heartbeat_details
|
|
33
|
-
# @return [Array<any>] Details submitted with the last heartbeat.
|
|
34
|
-
# @!attribute [r] heartbeat_timeout
|
|
35
|
-
# @return [Float] Max time between heartbeats (in seconds).
|
|
36
|
-
# @!attribute [r] local
|
|
37
|
-
# @return [Boolean] Whether activity is local or not.
|
|
38
|
-
# @!attribute [r] schedule_to_close_timeout
|
|
39
|
-
# @return [Float] Max overall activity execution time (in seconds).
|
|
40
|
-
# @!attribute [r] scheduled_time
|
|
41
|
-
# @return [Time] Time when activity was first scheduled.
|
|
42
|
-
# @!attribute [r] start_to_close_timeout
|
|
43
|
-
# @return [Float] Max time of a single invocation (in seconds).
|
|
44
|
-
# @!attribute [r] started_time
|
|
45
|
-
# @return [Time] Time when activity was started.
|
|
46
|
-
# @!attribute [r] task_queue
|
|
47
|
-
# @return [String] Task queue on which the activity got scheduled.
|
|
48
|
-
# @!attribute [r] task_token
|
|
49
|
-
# @return [String] A token for completing the activity.
|
|
50
|
-
# @!attribute [r] workflow_id
|
|
51
|
-
# @return [String] Workflow ID.
|
|
52
|
-
# @!attribute [r] workflow_namespace
|
|
53
|
-
# @return [String] Workflow namespace.
|
|
54
|
-
# @!attribute [r] workflow_run_id
|
|
55
|
-
# @return [String] Workflow run ID.
|
|
56
|
-
# @!attribute [r] workflow_type
|
|
57
|
-
# @return [String] Name of the workflow.
|
|
58
24
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
25
|
+
# Information about an activity.
|
|
26
|
+
#
|
|
27
|
+
# @!attribute activity_id
|
|
28
|
+
# @return [String] ID for the activity.
|
|
29
|
+
# @!attribute activity_type
|
|
30
|
+
# @return [String] Type name for the activity.
|
|
31
|
+
# @!attribute attempt
|
|
32
|
+
# @return [Integer] Attempt the activity is on.
|
|
33
|
+
# @!attribute current_attempt_scheduled_time
|
|
34
|
+
# @return [Time] When the current attempt was scheduled.
|
|
35
|
+
# @!attribute heartbeat_details
|
|
36
|
+
# @return [Array<Object>] Details from the last heartbeat of the last attempt.
|
|
37
|
+
# @!attribute heartbeat_timeout
|
|
38
|
+
# @return [Float, nil] Heartbeat timeout set by the caller.
|
|
39
|
+
# @!attribute local?
|
|
40
|
+
# @return [Boolean] Whether the activity is a local activity or not.
|
|
41
|
+
# @!attribute schedule_to_close_timeout
|
|
42
|
+
# @return [Float, nil] Schedule to close timeout set by the caller.
|
|
43
|
+
# @!attribute scheduled_time
|
|
44
|
+
# @return [Time] When the activity was scheduled.
|
|
45
|
+
# @!attribute start_to_close_timeout
|
|
46
|
+
# @return [Float, nil] Start to close timeout set by the caller.
|
|
47
|
+
# @!attribute started_time
|
|
48
|
+
# @return [Time] When the activity started.
|
|
49
|
+
# @!attribute task_queue
|
|
50
|
+
# @return [String] Task queue this activity is on.
|
|
51
|
+
# @!attribute task_token
|
|
52
|
+
# @return [String] Task token uniquely identifying this activity. Note, this is a `ASCII-8BIT` encoded string, not
|
|
53
|
+
# a `UTF-8` encoded string nor a valid UTF-8 string.
|
|
54
|
+
# @!attribute workflow_id
|
|
55
|
+
# @return [String] Workflow ID that started this activity.
|
|
56
|
+
# @!attribute workflow_namespace
|
|
57
|
+
# @return [String] Namespace this activity is on.
|
|
58
|
+
# @!attribute workflow_run_id
|
|
59
|
+
# @return [String] Workflow run ID that started this activity.
|
|
60
|
+
# @!attribute workflow_type
|
|
61
|
+
# @return [String] Workflow type name that started this activity.
|
|
62
|
+
class Info; end # rubocop:disable Lint/EmptyClass
|
|
66
63
|
end
|
|
67
64
|
end
|