temporalio 0.0.0 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +301 -0
- data/bridge/Cargo.lock +2888 -0
- data/bridge/Cargo.toml +27 -0
- data/bridge/sdk-core/ARCHITECTURE.md +76 -0
- data/bridge/sdk-core/Cargo.lock +2606 -0
- data/bridge/sdk-core/Cargo.toml +2 -0
- data/bridge/sdk-core/LICENSE.txt +23 -0
- data/bridge/sdk-core/README.md +104 -0
- data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
- data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
- data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
- data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
- data/bridge/sdk-core/client/Cargo.toml +40 -0
- data/bridge/sdk-core/client/LICENSE.txt +23 -0
- data/bridge/sdk-core/client/src/lib.rs +1286 -0
- data/bridge/sdk-core/client/src/metrics.rs +165 -0
- data/bridge/sdk-core/client/src/raw.rs +932 -0
- data/bridge/sdk-core/client/src/retry.rs +751 -0
- data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
- data/bridge/sdk-core/core/Cargo.toml +116 -0
- data/bridge/sdk-core/core/LICENSE.txt +23 -0
- data/bridge/sdk-core/core/benches/workflow_replay.rs +76 -0
- data/bridge/sdk-core/core/src/abstractions.rs +166 -0
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +1014 -0
- data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +925 -0
- data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
- data/bridge/sdk-core/core/src/core_tests/queries.rs +894 -0
- data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
- data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2090 -0
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
- data/bridge/sdk-core/core/src/lib.rs +282 -0
- data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
- data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
- data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
- data/bridge/sdk-core/core/src/replay/mod.rs +215 -0
- data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +428 -0
- data/bridge/sdk-core/core/src/telemetry/mod.rs +407 -0
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +78 -0
- data/bridge/sdk-core/core/src/test_help/mod.rs +889 -0
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1048 -0
- data/bridge/sdk-core/core/src/worker/activities.rs +481 -0
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
- data/bridge/sdk-core/core/src/worker/client.rs +373 -0
- data/bridge/sdk-core/core/src/worker/mod.rs +570 -0
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +101 -0
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +532 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +907 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +294 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +167 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +858 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +136 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +157 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +129 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1450 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +316 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +178 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +708 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +439 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +435 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +175 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +242 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1200 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +272 -0
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +655 -0
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1200 -0
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +985 -0
- data/bridge/sdk-core/core-api/Cargo.toml +32 -0
- data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
- data/bridge/sdk-core/core-api/src/errors.rs +95 -0
- data/bridge/sdk-core/core-api/src/lib.rs +109 -0
- data/bridge/sdk-core/core-api/src/telemetry.rs +147 -0
- data/bridge/sdk-core/core-api/src/worker.rs +148 -0
- data/bridge/sdk-core/etc/deps.svg +162 -0
- data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
- data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
- data/bridge/sdk-core/etc/prometheus.yaml +6 -0
- data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
- data/bridge/sdk-core/fsm/Cargo.toml +18 -0
- data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/README.md +3 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
- data/bridge/sdk-core/fsm/src/lib.rs +2 -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 +7 -0
- data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
- data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +9 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
- data/bridge/sdk-core/protos/api_upstream/build/tools.go +29 -0
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
- data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +89 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +260 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +47 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +56 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +170 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +118 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/interaction_type.proto +39 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +40 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +758 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +87 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +121 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +80 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +379 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +146 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1168 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +415 -0
- data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +263 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +304 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
- data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
- data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
- data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
- data/bridge/sdk-core/rustfmt.toml +1 -0
- data/bridge/sdk-core/sdk/Cargo.toml +47 -0
- data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
- data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
- data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
- data/bridge/sdk-core/sdk/src/interceptors.rs +50 -0
- data/bridge/sdk-core/sdk/src/lib.rs +794 -0
- data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
- data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
- data/bridge/sdk-core/sdk/src/workflow_context.rs +694 -0
- data/bridge/sdk-core/sdk/src/workflow_future.rs +499 -0
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
- data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
- data/bridge/sdk-core/sdk-core-protos/build.rs +107 -0
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +544 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1970 -0
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
- data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
- data/bridge/sdk-core/test-utils/Cargo.toml +36 -0
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
- data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
- data/bridge/sdk-core/test-utils/src/lib.rs +650 -0
- data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +221 -0
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +37 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +133 -0
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +788 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +53 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +223 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +597 -0
- data/bridge/sdk-core/tests/load_tests.rs +191 -0
- data/bridge/sdk-core/tests/main.rs +113 -0
- data/bridge/sdk-core/tests/runner.rs +93 -0
- data/bridge/src/connection.rs +186 -0
- data/bridge/src/lib.rs +239 -0
- data/bridge/src/runtime.rs +54 -0
- data/bridge/src/worker.rs +124 -0
- data/ext/Rakefile +9 -0
- data/lib/bridge.so +0 -0
- data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +50 -0
- data/lib/gen/temporal/api/command/v1/message_pb.rb +174 -0
- data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +33 -0
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +39 -0
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +42 -0
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +68 -0
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +77 -0
- data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +25 -0
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +23 -0
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
- data/lib/gen/temporal/api/history/v1/message_pb.rb +490 -0
- data/lib/gen/temporal/api/interaction/v1/message_pb.rb +49 -0
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +85 -0
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
- data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +149 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
- data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +111 -0
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +788 -0
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
- data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +165 -0
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +196 -0
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
- data/lib/temporalio/activity/context.rb +97 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/temporalio/client/implementation.rb +340 -0
- data/lib/temporalio/client/workflow_handle.rb +243 -0
- data/lib/temporalio/client.rb +131 -0
- data/lib/temporalio/connection.rb +751 -0
- data/lib/temporalio/data_converter.rb +191 -0
- data/lib/temporalio/error/failure.rb +194 -0
- data/lib/temporalio/error/workflow_failure.rb +19 -0
- data/lib/temporalio/errors.rb +40 -0
- data/lib/temporalio/failure_converter/base.rb +26 -0
- data/lib/temporalio/failure_converter/basic.rb +319 -0
- data/lib/temporalio/failure_converter.rb +7 -0
- data/lib/temporalio/interceptor/chain.rb +28 -0
- data/lib/temporalio/interceptor/client.rb +123 -0
- data/lib/temporalio/payload_codec/base.rb +32 -0
- data/lib/temporalio/payload_converter/base.rb +24 -0
- data/lib/temporalio/payload_converter/bytes.rb +27 -0
- data/lib/temporalio/payload_converter/composite.rb +49 -0
- data/lib/temporalio/payload_converter/encoding_base.rb +35 -0
- data/lib/temporalio/payload_converter/json.rb +26 -0
- data/lib/temporalio/payload_converter/nil.rb +26 -0
- data/lib/temporalio/payload_converter.rb +14 -0
- data/lib/temporalio/retry_policy.rb +82 -0
- data/lib/temporalio/retry_state.rb +35 -0
- data/lib/temporalio/runtime.rb +25 -0
- data/lib/temporalio/timeout_type.rb +29 -0
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +92 -0
- data/lib/temporalio/worker/activity_worker.rb +138 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +88 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +198 -0
- data/lib/temporalio/workflow/execution_info.rb +54 -0
- data/lib/temporalio/workflow/execution_status.rb +36 -0
- data/lib/temporalio/workflow/id_reuse_policy.rb +36 -0
- data/lib/temporalio/workflow/query_reject_condition.rb +33 -0
- data/lib/temporalio.rb +12 -1
- data/lib/thermite_patch.rb +23 -0
- data/temporalio.gemspec +45 -0
- metadata +566 -9
- data/lib/temporal/version.rb +0 -3
- data/lib/temporal.rb +0 -4
- data/temporal.gemspec +0 -20
@@ -0,0 +1,165 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: temporal/sdk/core/workflow_activation/workflow_activation.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/protobuf/timestamp_pb'
|
7
|
+
require 'google/protobuf/duration_pb'
|
8
|
+
require 'temporal/api/failure/v1/message_pb'
|
9
|
+
require 'temporal/api/common/v1/message_pb'
|
10
|
+
require 'temporal/api/enums/v1/workflow_pb'
|
11
|
+
require 'temporal/sdk/core/activity_result/activity_result_pb'
|
12
|
+
require 'temporal/sdk/core/child_workflow/child_workflow_pb'
|
13
|
+
require 'temporal/sdk/core/common/common_pb'
|
14
|
+
|
15
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
16
|
+
add_file("temporal/sdk/core/workflow_activation/workflow_activation.proto", :syntax => :proto3) do
|
17
|
+
add_message "coresdk.workflow_activation.WorkflowActivation" do
|
18
|
+
optional :run_id, :string, 1
|
19
|
+
optional :timestamp, :message, 2, "google.protobuf.Timestamp"
|
20
|
+
optional :is_replaying, :bool, 3
|
21
|
+
optional :history_length, :uint32, 4
|
22
|
+
repeated :jobs, :message, 5, "coresdk.workflow_activation.WorkflowActivationJob"
|
23
|
+
end
|
24
|
+
add_message "coresdk.workflow_activation.WorkflowActivationJob" do
|
25
|
+
oneof :variant do
|
26
|
+
optional :start_workflow, :message, 1, "coresdk.workflow_activation.StartWorkflow"
|
27
|
+
optional :fire_timer, :message, 2, "coresdk.workflow_activation.FireTimer"
|
28
|
+
optional :update_random_seed, :message, 4, "coresdk.workflow_activation.UpdateRandomSeed"
|
29
|
+
optional :query_workflow, :message, 5, "coresdk.workflow_activation.QueryWorkflow"
|
30
|
+
optional :cancel_workflow, :message, 6, "coresdk.workflow_activation.CancelWorkflow"
|
31
|
+
optional :signal_workflow, :message, 7, "coresdk.workflow_activation.SignalWorkflow"
|
32
|
+
optional :resolve_activity, :message, 8, "coresdk.workflow_activation.ResolveActivity"
|
33
|
+
optional :notify_has_patch, :message, 9, "coresdk.workflow_activation.NotifyHasPatch"
|
34
|
+
optional :resolve_child_workflow_execution_start, :message, 10, "coresdk.workflow_activation.ResolveChildWorkflowExecutionStart"
|
35
|
+
optional :resolve_child_workflow_execution, :message, 11, "coresdk.workflow_activation.ResolveChildWorkflowExecution"
|
36
|
+
optional :resolve_signal_external_workflow, :message, 12, "coresdk.workflow_activation.ResolveSignalExternalWorkflow"
|
37
|
+
optional :resolve_request_cancel_external_workflow, :message, 13, "coresdk.workflow_activation.ResolveRequestCancelExternalWorkflow"
|
38
|
+
optional :remove_from_cache, :message, 50, "coresdk.workflow_activation.RemoveFromCache"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
add_message "coresdk.workflow_activation.StartWorkflow" do
|
42
|
+
optional :workflow_type, :string, 1
|
43
|
+
optional :workflow_id, :string, 2
|
44
|
+
repeated :arguments, :message, 3, "temporal.api.common.v1.Payload"
|
45
|
+
optional :randomness_seed, :uint64, 4
|
46
|
+
map :headers, :string, :message, 5, "temporal.api.common.v1.Payload"
|
47
|
+
optional :identity, :string, 6
|
48
|
+
optional :parent_workflow_info, :message, 7, "coresdk.common.NamespacedWorkflowExecution"
|
49
|
+
optional :workflow_execution_timeout, :message, 8, "google.protobuf.Duration"
|
50
|
+
optional :workflow_run_timeout, :message, 9, "google.protobuf.Duration"
|
51
|
+
optional :workflow_task_timeout, :message, 10, "google.protobuf.Duration"
|
52
|
+
optional :continued_from_execution_run_id, :string, 11
|
53
|
+
optional :continued_initiator, :enum, 12, "temporal.api.enums.v1.ContinueAsNewInitiator"
|
54
|
+
optional :continued_failure, :message, 13, "temporal.api.failure.v1.Failure"
|
55
|
+
optional :last_completion_result, :message, 14, "temporal.api.common.v1.Payloads"
|
56
|
+
optional :first_execution_run_id, :string, 15
|
57
|
+
optional :retry_policy, :message, 16, "temporal.api.common.v1.RetryPolicy"
|
58
|
+
optional :attempt, :int32, 17
|
59
|
+
optional :cron_schedule, :string, 18
|
60
|
+
optional :workflow_execution_expiration_time, :message, 19, "google.protobuf.Timestamp"
|
61
|
+
optional :cron_schedule_to_schedule_interval, :message, 20, "google.protobuf.Duration"
|
62
|
+
optional :memo, :message, 21, "temporal.api.common.v1.Memo"
|
63
|
+
optional :search_attributes, :message, 22, "temporal.api.common.v1.SearchAttributes"
|
64
|
+
optional :start_time, :message, 23, "google.protobuf.Timestamp"
|
65
|
+
end
|
66
|
+
add_message "coresdk.workflow_activation.FireTimer" do
|
67
|
+
optional :seq, :uint32, 1
|
68
|
+
end
|
69
|
+
add_message "coresdk.workflow_activation.ResolveActivity" do
|
70
|
+
optional :seq, :uint32, 1
|
71
|
+
optional :result, :message, 2, "coresdk.activity_result.ActivityResolution"
|
72
|
+
end
|
73
|
+
add_message "coresdk.workflow_activation.ResolveChildWorkflowExecutionStart" do
|
74
|
+
optional :seq, :uint32, 1
|
75
|
+
oneof :status do
|
76
|
+
optional :succeeded, :message, 2, "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccess"
|
77
|
+
optional :failed, :message, 3, "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailure"
|
78
|
+
optional :cancelled, :message, 4, "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelled"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
add_message "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccess" do
|
82
|
+
optional :run_id, :string, 1
|
83
|
+
end
|
84
|
+
add_message "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailure" do
|
85
|
+
optional :workflow_id, :string, 1
|
86
|
+
optional :workflow_type, :string, 2
|
87
|
+
optional :cause, :enum, 3, "coresdk.child_workflow.StartChildWorkflowExecutionFailedCause"
|
88
|
+
end
|
89
|
+
add_message "coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelled" do
|
90
|
+
optional :failure, :message, 1, "temporal.api.failure.v1.Failure"
|
91
|
+
end
|
92
|
+
add_message "coresdk.workflow_activation.ResolveChildWorkflowExecution" do
|
93
|
+
optional :seq, :uint32, 1
|
94
|
+
optional :result, :message, 2, "coresdk.child_workflow.ChildWorkflowResult"
|
95
|
+
end
|
96
|
+
add_message "coresdk.workflow_activation.UpdateRandomSeed" do
|
97
|
+
optional :randomness_seed, :uint64, 1
|
98
|
+
end
|
99
|
+
add_message "coresdk.workflow_activation.QueryWorkflow" do
|
100
|
+
optional :query_id, :string, 1
|
101
|
+
optional :query_type, :string, 2
|
102
|
+
repeated :arguments, :message, 3, "temporal.api.common.v1.Payload"
|
103
|
+
map :headers, :string, :message, 5, "temporal.api.common.v1.Payload"
|
104
|
+
end
|
105
|
+
add_message "coresdk.workflow_activation.CancelWorkflow" do
|
106
|
+
repeated :details, :message, 1, "temporal.api.common.v1.Payload"
|
107
|
+
end
|
108
|
+
add_message "coresdk.workflow_activation.SignalWorkflow" do
|
109
|
+
optional :signal_name, :string, 1
|
110
|
+
repeated :input, :message, 2, "temporal.api.common.v1.Payload"
|
111
|
+
optional :identity, :string, 3
|
112
|
+
map :headers, :string, :message, 5, "temporal.api.common.v1.Payload"
|
113
|
+
end
|
114
|
+
add_message "coresdk.workflow_activation.NotifyHasPatch" do
|
115
|
+
optional :patch_id, :string, 1
|
116
|
+
end
|
117
|
+
add_message "coresdk.workflow_activation.ResolveSignalExternalWorkflow" do
|
118
|
+
optional :seq, :uint32, 1
|
119
|
+
optional :failure, :message, 2, "temporal.api.failure.v1.Failure"
|
120
|
+
end
|
121
|
+
add_message "coresdk.workflow_activation.ResolveRequestCancelExternalWorkflow" do
|
122
|
+
optional :seq, :uint32, 1
|
123
|
+
optional :failure, :message, 2, "temporal.api.failure.v1.Failure"
|
124
|
+
end
|
125
|
+
add_message "coresdk.workflow_activation.RemoveFromCache" do
|
126
|
+
optional :message, :string, 1
|
127
|
+
optional :reason, :enum, 2, "coresdk.workflow_activation.RemoveFromCache.EvictionReason"
|
128
|
+
end
|
129
|
+
add_enum "coresdk.workflow_activation.RemoveFromCache.EvictionReason" do
|
130
|
+
value :UNSPECIFIED, 0
|
131
|
+
value :CACHE_FULL, 1
|
132
|
+
value :CACHE_MISS, 2
|
133
|
+
value :NONDETERMINISM, 3
|
134
|
+
value :LANG_FAIL, 4
|
135
|
+
value :LANG_REQUESTED, 5
|
136
|
+
value :TASK_NOT_FOUND, 6
|
137
|
+
value :UNHANDLED_COMMAND, 7
|
138
|
+
value :FATAL, 8
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
module Coresdk
|
144
|
+
module WorkflowActivation
|
145
|
+
WorkflowActivation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.WorkflowActivation").msgclass
|
146
|
+
WorkflowActivationJob = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.WorkflowActivationJob").msgclass
|
147
|
+
StartWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.StartWorkflow").msgclass
|
148
|
+
FireTimer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.FireTimer").msgclass
|
149
|
+
ResolveActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveActivity").msgclass
|
150
|
+
ResolveChildWorkflowExecutionStart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveChildWorkflowExecutionStart").msgclass
|
151
|
+
ResolveChildWorkflowExecutionStartSuccess = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveChildWorkflowExecutionStartSuccess").msgclass
|
152
|
+
ResolveChildWorkflowExecutionStartFailure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveChildWorkflowExecutionStartFailure").msgclass
|
153
|
+
ResolveChildWorkflowExecutionStartCancelled = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveChildWorkflowExecutionStartCancelled").msgclass
|
154
|
+
ResolveChildWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveChildWorkflowExecution").msgclass
|
155
|
+
UpdateRandomSeed = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.UpdateRandomSeed").msgclass
|
156
|
+
QueryWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.QueryWorkflow").msgclass
|
157
|
+
CancelWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.CancelWorkflow").msgclass
|
158
|
+
SignalWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.SignalWorkflow").msgclass
|
159
|
+
NotifyHasPatch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.NotifyHasPatch").msgclass
|
160
|
+
ResolveSignalExternalWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveSignalExternalWorkflow").msgclass
|
161
|
+
ResolveRequestCancelExternalWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.ResolveRequestCancelExternalWorkflow").msgclass
|
162
|
+
RemoveFromCache = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.RemoveFromCache").msgclass
|
163
|
+
RemoveFromCache::EvictionReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_activation.RemoveFromCache.EvictionReason").enummodule
|
164
|
+
end
|
165
|
+
end
|
@@ -0,0 +1,196 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: temporal/sdk/core/workflow_commands/workflow_commands.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'google/protobuf/duration_pb'
|
7
|
+
require 'google/protobuf/timestamp_pb'
|
8
|
+
require 'temporal/api/common/v1/message_pb'
|
9
|
+
require 'temporal/api/enums/v1/workflow_pb'
|
10
|
+
require 'temporal/api/failure/v1/message_pb'
|
11
|
+
require 'temporal/sdk/core/child_workflow/child_workflow_pb'
|
12
|
+
require 'temporal/sdk/core/common/common_pb'
|
13
|
+
|
14
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
15
|
+
add_file("temporal/sdk/core/workflow_commands/workflow_commands.proto", :syntax => :proto3) do
|
16
|
+
add_message "coresdk.workflow_commands.WorkflowCommand" do
|
17
|
+
oneof :variant do
|
18
|
+
optional :start_timer, :message, 1, "coresdk.workflow_commands.StartTimer"
|
19
|
+
optional :schedule_activity, :message, 2, "coresdk.workflow_commands.ScheduleActivity"
|
20
|
+
optional :respond_to_query, :message, 3, "coresdk.workflow_commands.QueryResult"
|
21
|
+
optional :request_cancel_activity, :message, 4, "coresdk.workflow_commands.RequestCancelActivity"
|
22
|
+
optional :cancel_timer, :message, 5, "coresdk.workflow_commands.CancelTimer"
|
23
|
+
optional :complete_workflow_execution, :message, 6, "coresdk.workflow_commands.CompleteWorkflowExecution"
|
24
|
+
optional :fail_workflow_execution, :message, 7, "coresdk.workflow_commands.FailWorkflowExecution"
|
25
|
+
optional :continue_as_new_workflow_execution, :message, 8, "coresdk.workflow_commands.ContinueAsNewWorkflowExecution"
|
26
|
+
optional :cancel_workflow_execution, :message, 9, "coresdk.workflow_commands.CancelWorkflowExecution"
|
27
|
+
optional :set_patch_marker, :message, 10, "coresdk.workflow_commands.SetPatchMarker"
|
28
|
+
optional :start_child_workflow_execution, :message, 11, "coresdk.workflow_commands.StartChildWorkflowExecution"
|
29
|
+
optional :cancel_child_workflow_execution, :message, 12, "coresdk.workflow_commands.CancelChildWorkflowExecution"
|
30
|
+
optional :request_cancel_external_workflow_execution, :message, 13, "coresdk.workflow_commands.RequestCancelExternalWorkflowExecution"
|
31
|
+
optional :signal_external_workflow_execution, :message, 14, "coresdk.workflow_commands.SignalExternalWorkflowExecution"
|
32
|
+
optional :cancel_signal_workflow, :message, 15, "coresdk.workflow_commands.CancelSignalWorkflow"
|
33
|
+
optional :schedule_local_activity, :message, 16, "coresdk.workflow_commands.ScheduleLocalActivity"
|
34
|
+
optional :request_cancel_local_activity, :message, 17, "coresdk.workflow_commands.RequestCancelLocalActivity"
|
35
|
+
optional :upsert_workflow_search_attributes, :message, 18, "coresdk.workflow_commands.UpsertWorkflowSearchAttributes"
|
36
|
+
optional :modify_workflow_properties, :message, 19, "coresdk.workflow_commands.ModifyWorkflowProperties"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
add_message "coresdk.workflow_commands.StartTimer" do
|
40
|
+
optional :seq, :uint32, 1
|
41
|
+
optional :start_to_fire_timeout, :message, 2, "google.protobuf.Duration"
|
42
|
+
end
|
43
|
+
add_message "coresdk.workflow_commands.CancelTimer" do
|
44
|
+
optional :seq, :uint32, 1
|
45
|
+
end
|
46
|
+
add_message "coresdk.workflow_commands.ScheduleActivity" do
|
47
|
+
optional :seq, :uint32, 1
|
48
|
+
optional :activity_id, :string, 2
|
49
|
+
optional :activity_type, :string, 3
|
50
|
+
optional :task_queue, :string, 5
|
51
|
+
map :headers, :string, :message, 6, "temporal.api.common.v1.Payload"
|
52
|
+
repeated :arguments, :message, 7, "temporal.api.common.v1.Payload"
|
53
|
+
optional :schedule_to_close_timeout, :message, 8, "google.protobuf.Duration"
|
54
|
+
optional :schedule_to_start_timeout, :message, 9, "google.protobuf.Duration"
|
55
|
+
optional :start_to_close_timeout, :message, 10, "google.protobuf.Duration"
|
56
|
+
optional :heartbeat_timeout, :message, 11, "google.protobuf.Duration"
|
57
|
+
optional :retry_policy, :message, 12, "temporal.api.common.v1.RetryPolicy"
|
58
|
+
optional :cancellation_type, :enum, 13, "coresdk.workflow_commands.ActivityCancellationType"
|
59
|
+
optional :do_not_eagerly_execute, :bool, 14
|
60
|
+
end
|
61
|
+
add_message "coresdk.workflow_commands.ScheduleLocalActivity" do
|
62
|
+
optional :seq, :uint32, 1
|
63
|
+
optional :activity_id, :string, 2
|
64
|
+
optional :activity_type, :string, 3
|
65
|
+
optional :attempt, :uint32, 4
|
66
|
+
optional :original_schedule_time, :message, 5, "google.protobuf.Timestamp"
|
67
|
+
map :headers, :string, :message, 6, "temporal.api.common.v1.Payload"
|
68
|
+
repeated :arguments, :message, 7, "temporal.api.common.v1.Payload"
|
69
|
+
optional :schedule_to_close_timeout, :message, 8, "google.protobuf.Duration"
|
70
|
+
optional :schedule_to_start_timeout, :message, 9, "google.protobuf.Duration"
|
71
|
+
optional :start_to_close_timeout, :message, 10, "google.protobuf.Duration"
|
72
|
+
optional :retry_policy, :message, 11, "temporal.api.common.v1.RetryPolicy"
|
73
|
+
optional :local_retry_threshold, :message, 12, "google.protobuf.Duration"
|
74
|
+
optional :cancellation_type, :enum, 13, "coresdk.workflow_commands.ActivityCancellationType"
|
75
|
+
end
|
76
|
+
add_message "coresdk.workflow_commands.RequestCancelActivity" do
|
77
|
+
optional :seq, :uint32, 1
|
78
|
+
end
|
79
|
+
add_message "coresdk.workflow_commands.RequestCancelLocalActivity" do
|
80
|
+
optional :seq, :uint32, 1
|
81
|
+
end
|
82
|
+
add_message "coresdk.workflow_commands.QueryResult" do
|
83
|
+
optional :query_id, :string, 1
|
84
|
+
oneof :variant do
|
85
|
+
optional :succeeded, :message, 2, "coresdk.workflow_commands.QuerySuccess"
|
86
|
+
optional :failed, :message, 3, "temporal.api.failure.v1.Failure"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
add_message "coresdk.workflow_commands.QuerySuccess" do
|
90
|
+
optional :response, :message, 1, "temporal.api.common.v1.Payload"
|
91
|
+
end
|
92
|
+
add_message "coresdk.workflow_commands.CompleteWorkflowExecution" do
|
93
|
+
optional :result, :message, 1, "temporal.api.common.v1.Payload"
|
94
|
+
end
|
95
|
+
add_message "coresdk.workflow_commands.FailWorkflowExecution" do
|
96
|
+
optional :failure, :message, 1, "temporal.api.failure.v1.Failure"
|
97
|
+
end
|
98
|
+
add_message "coresdk.workflow_commands.ContinueAsNewWorkflowExecution" do
|
99
|
+
optional :workflow_type, :string, 1
|
100
|
+
optional :task_queue, :string, 2
|
101
|
+
repeated :arguments, :message, 3, "temporal.api.common.v1.Payload"
|
102
|
+
optional :workflow_run_timeout, :message, 4, "google.protobuf.Duration"
|
103
|
+
optional :workflow_task_timeout, :message, 5, "google.protobuf.Duration"
|
104
|
+
map :memo, :string, :message, 6, "temporal.api.common.v1.Payload"
|
105
|
+
map :headers, :string, :message, 7, "temporal.api.common.v1.Payload"
|
106
|
+
map :search_attributes, :string, :message, 8, "temporal.api.common.v1.Payload"
|
107
|
+
optional :retry_policy, :message, 9, "temporal.api.common.v1.RetryPolicy"
|
108
|
+
end
|
109
|
+
add_message "coresdk.workflow_commands.CancelWorkflowExecution" do
|
110
|
+
end
|
111
|
+
add_message "coresdk.workflow_commands.SetPatchMarker" do
|
112
|
+
optional :patch_id, :string, 1
|
113
|
+
optional :deprecated, :bool, 2
|
114
|
+
end
|
115
|
+
add_message "coresdk.workflow_commands.StartChildWorkflowExecution" do
|
116
|
+
optional :seq, :uint32, 1
|
117
|
+
optional :namespace, :string, 2
|
118
|
+
optional :workflow_id, :string, 3
|
119
|
+
optional :workflow_type, :string, 4
|
120
|
+
optional :task_queue, :string, 5
|
121
|
+
repeated :input, :message, 6, "temporal.api.common.v1.Payload"
|
122
|
+
optional :workflow_execution_timeout, :message, 7, "google.protobuf.Duration"
|
123
|
+
optional :workflow_run_timeout, :message, 8, "google.protobuf.Duration"
|
124
|
+
optional :workflow_task_timeout, :message, 9, "google.protobuf.Duration"
|
125
|
+
optional :parent_close_policy, :enum, 10, "coresdk.child_workflow.ParentClosePolicy"
|
126
|
+
optional :workflow_id_reuse_policy, :enum, 12, "temporal.api.enums.v1.WorkflowIdReusePolicy"
|
127
|
+
optional :retry_policy, :message, 13, "temporal.api.common.v1.RetryPolicy"
|
128
|
+
optional :cron_schedule, :string, 14
|
129
|
+
map :headers, :string, :message, 15, "temporal.api.common.v1.Payload"
|
130
|
+
map :memo, :string, :message, 16, "temporal.api.common.v1.Payload"
|
131
|
+
map :search_attributes, :string, :message, 17, "temporal.api.common.v1.Payload"
|
132
|
+
optional :cancellation_type, :enum, 18, "coresdk.child_workflow.ChildWorkflowCancellationType"
|
133
|
+
end
|
134
|
+
add_message "coresdk.workflow_commands.CancelChildWorkflowExecution" do
|
135
|
+
optional :child_workflow_seq, :uint32, 1
|
136
|
+
end
|
137
|
+
add_message "coresdk.workflow_commands.RequestCancelExternalWorkflowExecution" do
|
138
|
+
optional :seq, :uint32, 1
|
139
|
+
oneof :target do
|
140
|
+
optional :workflow_execution, :message, 2, "coresdk.common.NamespacedWorkflowExecution"
|
141
|
+
optional :child_workflow_id, :string, 3
|
142
|
+
end
|
143
|
+
end
|
144
|
+
add_message "coresdk.workflow_commands.SignalExternalWorkflowExecution" do
|
145
|
+
optional :seq, :uint32, 1
|
146
|
+
optional :signal_name, :string, 4
|
147
|
+
repeated :args, :message, 5, "temporal.api.common.v1.Payload"
|
148
|
+
map :headers, :string, :message, 6, "temporal.api.common.v1.Payload"
|
149
|
+
oneof :target do
|
150
|
+
optional :workflow_execution, :message, 2, "coresdk.common.NamespacedWorkflowExecution"
|
151
|
+
optional :child_workflow_id, :string, 3
|
152
|
+
end
|
153
|
+
end
|
154
|
+
add_message "coresdk.workflow_commands.CancelSignalWorkflow" do
|
155
|
+
optional :seq, :uint32, 1
|
156
|
+
end
|
157
|
+
add_message "coresdk.workflow_commands.UpsertWorkflowSearchAttributes" do
|
158
|
+
map :search_attributes, :string, :message, 1, "temporal.api.common.v1.Payload"
|
159
|
+
end
|
160
|
+
add_message "coresdk.workflow_commands.ModifyWorkflowProperties" do
|
161
|
+
optional :upserted_memo, :message, 1, "temporal.api.common.v1.Memo"
|
162
|
+
end
|
163
|
+
add_enum "coresdk.workflow_commands.ActivityCancellationType" do
|
164
|
+
value :TRY_CANCEL, 0
|
165
|
+
value :WAIT_CANCELLATION_COMPLETED, 1
|
166
|
+
value :ABANDON, 2
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
module Coresdk
|
172
|
+
module WorkflowCommands
|
173
|
+
WorkflowCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.WorkflowCommand").msgclass
|
174
|
+
StartTimer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.StartTimer").msgclass
|
175
|
+
CancelTimer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.CancelTimer").msgclass
|
176
|
+
ScheduleActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ScheduleActivity").msgclass
|
177
|
+
ScheduleLocalActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ScheduleLocalActivity").msgclass
|
178
|
+
RequestCancelActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.RequestCancelActivity").msgclass
|
179
|
+
RequestCancelLocalActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.RequestCancelLocalActivity").msgclass
|
180
|
+
QueryResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.QueryResult").msgclass
|
181
|
+
QuerySuccess = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.QuerySuccess").msgclass
|
182
|
+
CompleteWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.CompleteWorkflowExecution").msgclass
|
183
|
+
FailWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.FailWorkflowExecution").msgclass
|
184
|
+
ContinueAsNewWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ContinueAsNewWorkflowExecution").msgclass
|
185
|
+
CancelWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.CancelWorkflowExecution").msgclass
|
186
|
+
SetPatchMarker = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.SetPatchMarker").msgclass
|
187
|
+
StartChildWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.StartChildWorkflowExecution").msgclass
|
188
|
+
CancelChildWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.CancelChildWorkflowExecution").msgclass
|
189
|
+
RequestCancelExternalWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.RequestCancelExternalWorkflowExecution").msgclass
|
190
|
+
SignalExternalWorkflowExecution = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.SignalExternalWorkflowExecution").msgclass
|
191
|
+
CancelSignalWorkflow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.CancelSignalWorkflow").msgclass
|
192
|
+
UpsertWorkflowSearchAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.UpsertWorkflowSearchAttributes").msgclass
|
193
|
+
ModifyWorkflowProperties = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ModifyWorkflowProperties").msgclass
|
194
|
+
ActivityCancellationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_commands.ActivityCancellationType").enummodule
|
195
|
+
end
|
196
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: temporal/sdk/core/workflow_completion/workflow_completion.proto
|
3
|
+
|
4
|
+
require 'google/protobuf'
|
5
|
+
|
6
|
+
require 'temporal/api/failure/v1/message_pb'
|
7
|
+
require 'temporal/sdk/core/common/common_pb'
|
8
|
+
require 'temporal/sdk/core/workflow_commands/workflow_commands_pb'
|
9
|
+
|
10
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
11
|
+
add_file("temporal/sdk/core/workflow_completion/workflow_completion.proto", :syntax => :proto3) do
|
12
|
+
add_message "coresdk.workflow_completion.WorkflowActivationCompletion" do
|
13
|
+
optional :run_id, :string, 1
|
14
|
+
oneof :status do
|
15
|
+
optional :successful, :message, 2, "coresdk.workflow_completion.Success"
|
16
|
+
optional :failed, :message, 3, "coresdk.workflow_completion.Failure"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
add_message "coresdk.workflow_completion.Success" do
|
20
|
+
repeated :commands, :message, 1, "coresdk.workflow_commands.WorkflowCommand"
|
21
|
+
end
|
22
|
+
add_message "coresdk.workflow_completion.Failure" do
|
23
|
+
optional :failure, :message, 1, "temporal.api.failure.v1.Failure"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module Coresdk
|
29
|
+
module WorkflowCompletion
|
30
|
+
WorkflowActivationCompletion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_completion.WorkflowActivationCompletion").msgclass
|
31
|
+
Success = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_completion.Success").msgclass
|
32
|
+
Failure = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("coresdk.workflow_completion.Failure").msgclass
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'temporalio/error/failure'
|
2
|
+
require 'temporalio/errors'
|
3
|
+
|
4
|
+
module Temporalio
|
5
|
+
class Activity
|
6
|
+
# This class provides methods that can be called from activity classes.
|
7
|
+
class Context
|
8
|
+
# Information about the running activity.
|
9
|
+
#
|
10
|
+
# @return [Temporalio::Activity::Info]
|
11
|
+
attr_reader :info
|
12
|
+
|
13
|
+
# @api private
|
14
|
+
def initialize(info, heartbeat_proc, shielded: false)
|
15
|
+
@thread = Thread.current
|
16
|
+
@info = info
|
17
|
+
@heartbeat_proc = heartbeat_proc
|
18
|
+
@pending_cancellation = nil
|
19
|
+
@shielded = shielded
|
20
|
+
@mutex = Mutex.new
|
21
|
+
end
|
22
|
+
|
23
|
+
# Send a heartbeat for the current activity.
|
24
|
+
#
|
25
|
+
# @param details [Array<any>] Data to store with the heartbeat.
|
26
|
+
def heartbeat(*details)
|
27
|
+
heartbeat_proc.call(*details)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Protect a part of activity's implementation from cancellations.
|
31
|
+
#
|
32
|
+
# Activity cancellations are implemented using the `Thread#raise`, which can unsafely
|
33
|
+
# terminate your implementation. To disable this behaviour make sure to wrap critical parts of
|
34
|
+
# your business logic in this method.
|
35
|
+
#
|
36
|
+
# For shielding a whole activity consider using {Temporalio::Activity.shielded!}.
|
37
|
+
#
|
38
|
+
# A cancellation that got requested while in a shielded block will not interrupt the execution
|
39
|
+
# and will raise a {Temporalio::Error::CancelledError} right after the block has finished.
|
40
|
+
#
|
41
|
+
# @yield Block to be protected from cancellations.
|
42
|
+
def shield(&block)
|
43
|
+
# The whole activity is shielded, called from a nested shield
|
44
|
+
# or while handling a CancelledError (in a rescue or ensure blocks)
|
45
|
+
return block.call if @shielded || cancelled?
|
46
|
+
|
47
|
+
if Thread.current != thread
|
48
|
+
# TODO: Use logger instead when implemented
|
49
|
+
warn "Activity shielding is not intended to be used outside of activity's thread."
|
50
|
+
return block.call
|
51
|
+
end
|
52
|
+
|
53
|
+
mutex.synchronize do
|
54
|
+
@shielded = true
|
55
|
+
result = block.call
|
56
|
+
# RBS: StandardError fallback is only needed to satisfy steep - https://github.com/soutaro/steep/issues/477
|
57
|
+
raise @pending_cancellation || StandardError if cancelled?
|
58
|
+
|
59
|
+
result
|
60
|
+
ensure # runs while still holding the lock
|
61
|
+
@shielded = false
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Whether a cancellation was ever requested on this activity.
|
66
|
+
#
|
67
|
+
# @return [Boolean] true if the activity has had a cancellation request, false otherwise.
|
68
|
+
def cancelled?
|
69
|
+
!!@pending_cancellation
|
70
|
+
end
|
71
|
+
|
72
|
+
# Cancel the running activity by raising a provided error.
|
73
|
+
#
|
74
|
+
# @param reason [String] Reason for cancellation.
|
75
|
+
# @param by_request [Boolean] Cancellation requested by the server or not.
|
76
|
+
#
|
77
|
+
# @api private
|
78
|
+
def cancel(reason, by_request: false)
|
79
|
+
error = Temporalio::Error::ActivityCancelled.new(reason, by_request)
|
80
|
+
@pending_cancellation = error
|
81
|
+
|
82
|
+
locked = mutex.try_lock
|
83
|
+
# @shielded inside the lock means the whole activity is shielded
|
84
|
+
if locked && !@shielded
|
85
|
+
thread.raise(error)
|
86
|
+
end
|
87
|
+
ensure
|
88
|
+
# only release the lock if we locked it
|
89
|
+
mutex.unlock if locked
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
attr_reader :thread, :heartbeat_proc, :mutex
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Temporalio
|
2
|
+
class Activity
|
3
|
+
# Class containing information about an activity.
|
4
|
+
class Info < Struct.new(
|
5
|
+
:activity_id,
|
6
|
+
:activity_type,
|
7
|
+
:attempt,
|
8
|
+
:current_attempt_scheduled_time,
|
9
|
+
:heartbeat_details,
|
10
|
+
:heartbeat_timeout,
|
11
|
+
:local,
|
12
|
+
:schedule_to_close_timeout,
|
13
|
+
:scheduled_time,
|
14
|
+
:start_to_close_timeout,
|
15
|
+
:started_time,
|
16
|
+
:task_queue,
|
17
|
+
:task_token,
|
18
|
+
:workflow_id,
|
19
|
+
:workflow_namespace,
|
20
|
+
:workflow_run_id,
|
21
|
+
:workflow_type,
|
22
|
+
keyword_init: true,
|
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 [Floaat] 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
|
+
|
59
|
+
# Whether activity is local or not
|
60
|
+
#
|
61
|
+
# @return [Boolean] True for local activities, falst otherwise.
|
62
|
+
def local?
|
63
|
+
local
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
module Temporalio
|
2
|
+
# This is an abstract superclass for implementing activities.
|
3
|
+
#
|
4
|
+
# Temporal SDK users are expected to subclass it and implement the {#execute} method by adding
|
5
|
+
# their desired business logic.
|
6
|
+
#
|
7
|
+
# @abstract
|
8
|
+
#
|
9
|
+
# @example "Hello World" Activity
|
10
|
+
# class HelloWorld < Temporalio::Activity
|
11
|
+
# def execute(name)
|
12
|
+
# "Hello, #{name}!"
|
13
|
+
# end
|
14
|
+
# end
|
15
|
+
class Activity
|
16
|
+
# Specify a custom name to be used for this activity.
|
17
|
+
#
|
18
|
+
# By default a full class (with any namespace modules/classes) name will be used.
|
19
|
+
#
|
20
|
+
# @param new_name [String] Name to be used for this activity
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# class Test < Temporalio::Activity
|
24
|
+
# activity_name 'custom-activity-name'
|
25
|
+
#
|
26
|
+
# def execute
|
27
|
+
# ...
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
def self.activity_name(new_name)
|
31
|
+
@activity_name = new_name
|
32
|
+
end
|
33
|
+
|
34
|
+
# Mark the activity as shielded from cancellations.
|
35
|
+
#
|
36
|
+
# Activity cancellations are implemented using the `Thread#raise`, which can unsafely terminate
|
37
|
+
# your implementation. To disable this behaviour make sure to mark critical activities as
|
38
|
+
# `shielded!`. For shielding a part of your activity consider using
|
39
|
+
# {Temporalio::Activity::Context#shield}.
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# class Test < Temporalio::Activity
|
43
|
+
# shielded!
|
44
|
+
#
|
45
|
+
# def execute
|
46
|
+
# ...
|
47
|
+
# end
|
48
|
+
# end
|
49
|
+
def self.shielded!
|
50
|
+
@shielded = true
|
51
|
+
end
|
52
|
+
|
53
|
+
# @api private
|
54
|
+
def self._name
|
55
|
+
@activity_name || name || ''
|
56
|
+
end
|
57
|
+
|
58
|
+
# @api private
|
59
|
+
def self._shielded
|
60
|
+
@shielded || false
|
61
|
+
end
|
62
|
+
|
63
|
+
# @api private
|
64
|
+
def initialize(context)
|
65
|
+
@context = context
|
66
|
+
end
|
67
|
+
|
68
|
+
# This is the main body of your activity's implementation.
|
69
|
+
#
|
70
|
+
# When implementing this method, you can use as many positional arguments as needed, which will
|
71
|
+
# get converted based on the activity invocation in your workflow.
|
72
|
+
#
|
73
|
+
# Inside of this method you have access to activity's context using the `activity` method. Check
|
74
|
+
# out {Temporalio::Activity::Context} for more information on how to use it.
|
75
|
+
def execute(*_args)
|
76
|
+
raise NoMethodError, 'must implement #execute'
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def activity
|
82
|
+
@context
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|